[英]How can I configure MYSQL DB to accept NULL for primary key in the INSERT statement and then generate unique primary key
我正在使用此 stackoverflow 答案中的以下代碼復制表中的一行並在同一個表中創建一個新行,但具有相同的數據和唯一的主鍵。 我正在使用 mysql-connector-python 模塊運行代碼。
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
此代碼在生產數據庫上運行,但在我的本地測試數據庫上出現以下錯誤。
IntegrityError: 1048 (23000): Column 'primaryKey' cannot be null
本地數據庫:
MYSQL==5.6.47
mysql-connector-python==2.1.3
生產數據庫:
MYSQL==5.6.40
mysql-connector-python==2.1.3
我使用 MYSQL Workbench 從生產數據庫導出架構和數據,並將其導入我的本地測試數據庫。
MYSQL DB 的配置設置是否存在問題? 我不確定數據庫行為差異的原因是什么。
只需從INSERT
端刪除該列,您就可以插入自己:
INSERT INTO table (a, b, c) SELECT a, b, c FROM table;
您必須以完全相同的順序指定列,省略id
之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.