Mysql 用于添加列和约束的Alter table
你好,我有这个,但它显示错误Mysql 用于添加列和约束的Alter table,mysql,key,constraints,alter-table,Mysql,Key,Constraints,Alter Table,你好,我有这个,但它显示错误 ERROR 1064 (42000) at line 61: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( ADD COLUMN `CIUDAD_ID` int(11) NOT NULL AUTO_INCREMENT, ADD COL
ERROR 1064 (42000) at line 61: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
ADD COLUMN `CIUDAD_ID` int(11) NOT NULL AUTO_INCREMENT,
ADD COLUMN `DEPART' at line 1
声明如下:
ALTER TABLE `ciudad`
(
ADD COLUMN `CIUDAD_ID` int(11) NOT NULL AUTO_INCREMENT,
ADD COLUMN `DEPARTAMENTO_ID` int(11) NOT NULL,
ADD COLUMN `REGION_ID` int(11) NOT NULL,
ADD COLUMN `CODIGO` char(50) DEFAULT NULL,
ADD COLUMN `DESCRIPCION` char(100) DEFAULT NULL,
PRIMARY KEY (`CIUDAD_ID`),
KEY `FK_DEPARTAMENTO_CIUDAD` (`DEPARTAMENTO_ID`),
KEY `FK_REGION_CIUDAD` (`REGION_ID`),
CONSTRAINT `FK_DEPARTAMENTO_CIUDAD` FOREIGN KEY (`DEPARTAMENTO_ID`)
REFERENCES `departamento` (`DEPARTAMENTO_ID`),
CONSTRAINT `FK_REGION_CIUDAD` FOREIGN KEY (`REGION_ID`)
REFERENCES `region` (`REGION_ID`)
)
ENGINE=InnoDB AUTO_INCREMENT=9056 DEFAULT CHARSET=utf8;
在
ALTER
语句中,不需要用括号括住列命令
试试这个:
ALTER TABLE ciudad
ADD COLUMN CIUDAD_ID int(11) NOT NULL AUTO_INCREMENT,
ADD COLUMN DEPARTAMENTO_ID int(11) NOT NULL,
ADD COLUMN REGION_ID int(11) NOT NULL,
ADD COLUMN CODIGO char(50) DEFAULT NULL,
ADD COLUMN DESCRIPCION char(100) DEFAULT NULL,
PRIMARY KEY (CIUDAD_ID),
KEY FK_DEPARTAMENTO_CIUDAD (DEPARTAMENTO_ID),
KEY FK_REGION_CIUDAD (REGION_ID),
CONSTRAINT FK_DEPARTAMENTO_CIUDAD FOREIGN KEY (DEPARTAMENTO_ID)
REFERENCES departamento (DEPARTAMENTO_ID),
CONSTRAINT FK_REGION_CIUDAD FOREIGN KEY (REGION_ID)
REFERENCES region (REGION_ID),
ENGINE=InnoDB AUTO_INCREMENT=9056 DEFAULT CHARSET=utf8;
谢谢你,我做到了
ALTER TABLE `ciudad`
ADD COLUMN `CIUDAD_ID` int(11) NOT NULL,
ADD COLUMN `DEPARTAMENTO_ID` int(11) NOT NULL,
ADD COLUMN `REGION_ID` int(11) NOT NULL,
ADD COLUMN `CODIGO` char(50) DEFAULT NULL,
ADD COLUMN `DESCRIPCION` char(100) DEFAULT NULL,
ADD KEY (`CIUDAD_ID`),
ADD KEY `FK_DEPARTAMENTO_CIUDAD` (`DEPARTAMENTO_ID`),
ADD KEY `FK_REGION_CIUDAD` (`REGION_ID`),
ADD CONSTRAINT `FK_DEPARTAMENTO_CIUDAD` FOREIGN KEY (`DEPARTAMENTO_ID`)
REFERENCES `departamento` (`DEPARTAMENTO_ID`),
ADD CONSTRAINT `FK_REGION_CIUDAD` FOREIGN KEY (`REGION_ID`)
REFERENCES `region` (`REGION_ID`),
ENGINE=InnoDB DEFAULT CHARSET=utf8;
没有主键,因为我有一个。您确定要更改表而不是创建表吗?要添加到表中的列太多了。此外,如果您实际上试图更改一个表,我认为在该表已经存在的情况下,如果不提供默认值,就不能添加“NOTNULL”列。。。也许…现在我有一个错误:不正确的表定义;只能有一个自动列,必须将其定义为键
ALTER TABLE `ciudad`
ADD COLUMN `CIUDAD_ID` int(11) NOT NULL,
ADD COLUMN `DEPARTAMENTO_ID` int(11) NOT NULL,
ADD COLUMN `REGION_ID` int(11) NOT NULL,
ADD COLUMN `CODIGO` char(50) DEFAULT NULL,
ADD COLUMN `DESCRIPCION` char(100) DEFAULT NULL,
ADD KEY (`CIUDAD_ID`),
ADD KEY `FK_DEPARTAMENTO_CIUDAD` (`DEPARTAMENTO_ID`),
ADD KEY `FK_REGION_CIUDAD` (`REGION_ID`),
ADD CONSTRAINT `FK_DEPARTAMENTO_CIUDAD` FOREIGN KEY (`DEPARTAMENTO_ID`)
REFERENCES `departamento` (`DEPARTAMENTO_ID`),
ADD CONSTRAINT `FK_REGION_CIUDAD` FOREIGN KEY (`REGION_ID`)
REFERENCES `region` (`REGION_ID`),
ENGINE=InnoDB DEFAULT CHARSET=utf8;