是否可以更改键/外键的属性(无需删除并重新创建它们)?
我有以下结构:
CREATE TABLE `articles` (
..
`LKZ` smallint(3) NOT NULL,
`FID` int(4) NOT NULL,
..
) ;
CREATE TABLE `firm` (
`LKZ` smallint(3) NOT NULL,
`FID` int(4) NOT NULL,
`Name` text NOT NULL,
PRIMARY KEY (`LKZ`,`FID`),
KEY `FID` (`FID`)
);
ALTER TABLE `firm`
ADD CONSTRAINT `firm_ibfk_1` FOREIGN KEY (`LKZ`) REFERENCES `articles` (`LKZ`) ON DELETE NO ACTION,
ADD CONSTRAINT `firm_ibfk_2` FOREIGN KEY (`FID`) REFERENCES `articles` (`FID`);
我想将属性添加UNSIGNED ZEROFILL
到字段FID
和LKZ
:
ALTER TABLE `articles` CHANGE `LKZ` `LKZ` SMALLINT( 3 ) UNSIGNED ZEROFILL NOT NULL, CHANGE `FID` `FID` INT( 4 ) UNSIGNED ZEROFILL NOT NULL;
ALTER TABLE `firm` CHANGE `LKZ` `LKZ` SMALLINT( 3 ) UNSIGNED ZEROFILL NOT NULL, CHANGE `FID` `FID` INT( 4 ) UNSIGNED ZEROFILL NOT NULL
但即使两个表都出现以下错误:
#1025 - Error on rename of '.\pindex\#sql-3eec4_ef' to '.\pindex\articles' (errno: 150)