không có cách nào dễ dàng để nối các giá trị enum.
điều này thật xấu và chưa được kiểm tra, nhưng tôi nghĩ nó sẽ cho bạn một ý tưởng:
<?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);
}
bạn có thể làm điều này "hoàn toàn trong mysql" với một thủ tục được lưu trữ, nhưng đó là nhiều hơn những gì tôi có thể quấn quanh bộ não của mình ngay bây giờ. :)