繁体   English   中英

如果更改列名,MySQL将不会创建表

[英]MySQL would not create a table if I change the name of a column

我正在使用python代码创建MySQL表。

我可以为列使用特定名称来创建表,但是一旦我要更改它们,就不再创建表。

此代码可以正常工作

DROP TABLE IF EXISTS sector_tb;

CREATE TABLE sector_tb  (
    id INT NOT NULL AUTO_INCREMENT,
    sector VARCHAR(255) NOT NULL DEFAULT '',
    district_id INT NOT NULL,
    PRIMARY KEY (id),
        UNIQUE INDEX sector (sector)
)
COLLATE='latin1_swedish_ci'
;

一旦我决定将'sector'的名称更改为'sector1'或其他名称,MySQL便不再创建该表。 下面的代码不再创建该表。

CREATE TABLE sector_tb  (
    id INT NOT NULL AUTO_INCREMENT,
    sector1 VARCHAR(255) NOT NULL DEFAULT '',
    district_id INT NOT NULL,
    PRIMARY KEY (id),
        UNIQUE INDEX sector (sector)
)
COLLATE='latin1_swedish_ci'
;

运行代码时未显示任何错误。

第二个语句中有一个明显的错误:索引中的列名与表中的列名不匹配。

扇区1 VARCHAR(255)

唯一索引部门(部门)

如果您的Python代码未报告任何错误,则必须改善错误处理。

两个选择-删除原始的ector_tb,然后运行第二个脚本,或使用alter table命令重命名列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM