Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL menambahkan bidang ke Enum

tidak ada cara mudah untuk menambahkan nilai enum.

ini jelek dan belum teruji, tetapi saya pikir ini akan memberi Anda gambaran:

<?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);
}

Anda mungkin bisa melakukan ini "murni di mysql" dengan prosedur tersimpan, tapi itu lebih dari yang saya bisa membungkus otak saya sekarang. :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pesanan mysql dengan data serial?

  2. Klausa pengembalian MySQL setara

  3. django.core.exceptions.ImproperlyConfigured:Kesalahan memuat modul MySQLdb:Tidak ada modul bernama MySQLdb

  4. Kapan menyimpan gambar dalam database (mySQL) dan kapan tidak? (Menghubungkan gambar ke item dalam database)

  5. Kelompokkan Data OHLC-Stockmarket ke dalam beberapa kerangka waktu - Mysql