[英]How can i add dynamic column in table exists with mysql?
我有表,我想添加列,但列的名稱將是可變的
像這樣 :
$coulName = col_1_2;
ALTER TABLE `table name` ADD `$coulmName` DOUBLE NOT NULL DEFAULT '0' AFTER `col2`;
我怎樣才能做到這一點 ?
您需要為此使用准備好的語句 :
SET @colName = 'col_1_2';
SET @s = CONCAT('ALTER TABLE `mytable` ADD `', @colName,
'` DOUBLE NOT NULL DEFAULT 0 AFTER `col2`');
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
在MySQL中,您只能使用預處理語句來實現此目的,因為您不能將變量綁定到表或列名。 這意味着您必須將sql語句匯編為字符串並執行它。
但是,您也可以從應用程序代碼中完成此操作-變量名建議您可以使用php。 同樣適用:必須連接sql語句字符串,不能使用參數。
代碼看起來像mysql中的以下代碼:
@coulName = 'col_1_2';
@sql = 'ALTER TABLE `table name` ADD `',@coulmName,'` DOUBLE NOT NULL DEFAULT '0' AFTER `col2`;
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
但是,我不確定定期動態地更改現有數據結構是否真的是一個好主意。 這通常表明數據庫設計不佳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.