Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL dodaje pola do Enum

nie ma łatwego sposobu na dołączenie wartości wyliczenia.

to jest brzydkie i nieprzetestowane, ale myślę, że da ci to pewien pomysł:

<?php

$sql = "select table_schema
             , table_name
             , column_name
             , column_type
             , is_nullable
             , column_default
          from information_schema
         where data_type = 'enum'";

$res = mysql_query($sql);

while ($row = mysql_fetch_assoc($res)) {

  // these are important -->       leading comma --v      close paren --v
  $new_enum = substr($row['column_type', 0, -1) . ",'new','enums','here')"

  $sql = "alter table `{$row['table_schema']}`.`{$row['table_name']}`";
  $sql .= " modify column `{$row['column_name']}`";
  $sql .= " $new_enum";
  $sql .= ($row['is_nullable'] == 'YES') ? " NULL" : " NOT NULL";
  $sql .= " default $row['column_default']";

  mysql_query($sql);
}

prawdopodobnie mógłbyś to zrobić „czysto w mysql” za pomocą procedury składowanej, ale to więcej niż mogę teraz owinąć mózgiem. :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz wszystkie wiersze, które mają przynajmniej listę funkcji

  2. SQL JOIN dwie tabele z AVG

  3. Jak przechowywać tablice w MySQL?

  4. Importuj kontener data.sql MySQL Docker

  5. Wiele kluczy obcych do tej samej tabeli Orm gazu