0

キー/外部キーの属性を (削除して再作成せずに) 変更することはできますか?

私は次の構造を持っています:

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) 
4

1 に答える 1