コードは次のようになります。
CREATE TABLE Seller (
sID INT AUTO_INCREMENT
PRIMARY KEY,
sName CHAR (10),
sAddress CHAR (30)
)ENGINE = INNODB;
CREATE TABLE Sale (
sID INT AUTO_INCREMENT,
iName CHAR(10),
CONSTRAINT sa_pk
PRIMARY KEY (sID, iName),
CONSTRAINT sa_fk1
FOREIGN KEY (sID)
REFERENCES Seller (sID)
ON UPDATE CASCADE,
CONSTRAINT sa_fk2
FOREIGN KEY (iName)
REFERENCES Item (iName)
ON UPDATE CASCADE
)ENGINE = INNODB;
CREATE TABLE Item (
iPrice REAL,
iStock INT,
iName CHAR(10)
PRIMARY KEY,
iDescription CHAR (30)
)ENGINE = INNODB;
CREATE TABLE Copy (
oQuantity INT,
iName CHAR(10),
CONSTRAINT co_pk
PRIMARY KEY (oQuantity, iName),
CONSTRAINT co_fk1
FOREIGN KEY (oQuantity)
REFERENCES Orders (oQuantity)
ON UPDATE CASCADE,
CONSTRAINT co_fk2
FOREIGN KEY (iName)
REFERENCES Item (iName)
ON UPDATE CASCADE
)ENGINE = INNODB;
CREATE TABLE Orders (
oSeller CHAR (10),
oTypes CHAR (10),
oQuantity INT,
oPrice REAL,
oID INT AUTO_INCREMENT
PRIMARY KEY
)ENGINE = INNODB;
CREATE TABLE Customer (
cID INT AUTO_INCREMENT
PRIMARY KEY,
cName CHAR (10),
cAddress CHAR (30)
)ENGINE = INNODB;
最初にドロップ コマンドがあるので、このスクリプトを実行するたびに、少なくともコピーと販売を除くすべてのコマンドが削除されます。それらを削除しようとすると、それらが作成されないため失敗します。エラー1005(HY000)のがらくたが続き、テーブルxを作成できません。この厄介な問題を解決するのを手伝ってください。タール!