2015-07-10 79 views
-1

你好,我有这个,但它显示错误阿尔特表添加列和约束

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; 
+0

你确定你正在改变一张桌子而不是创建一个吗?这是很多列添加到表中。此外,如果您实际上试图更改表格,我认为您不能在表格已经存在的情况下添加“非空值”列,而不提供默认值... – Kritner

+0

是的,我改变了 –

回答

0
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, 
ADD PRIMARY 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 AUTO_INCREMENT=9056 DEFAULT CHARSET=utf8; 
+0

现在我有这个错误:不正确的表定义;只能有一个自动列,并且必须将其定义为键 –

0

你不需要周围的括号在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; 
0

谢谢你,我已经做到了

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; 

whitouth一个主键,因为我有一个。