簡體   English   中英

我如何添加表存在於mysql中的動態列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM