gpt4 book ai didi

mysql - 在 MySQL 5.5 中创建三个相关表

转载 作者:行者123 更新时间:2023-11-30 22:54:41 25 4
gpt4 key购买 nike

Use snhpinventorytest;
CREATE TABLE Persons (
PersonID INT(11) unsigned NOT NULL auto_increment,
PRIMARY KEY (PersonID),
FirstName Varchar (50),
Lastname varchar(50)
) ENGINE=INNODB;

Use snhpinventorytest;
CREATE TABLE if not exists Locations (
LocationID INT(11) UNSIGNED NOT NULL auto_increment,
PRIMARY KEY (LocationID),
PersonID int(11) unsigned,
INDEX PersonID_IDX (PersonID),
BuildingName varchar(50),
LocationType varchar(50),
RoomNumber varchar (20),
FOREIGN KEY (FK_PersonID) REFERENCES Person(PersonID)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=INNODB;

Use snhpinventorytest;
CREATE TABLE if not exists assets (
AssetID INT(11) UNSIGNED NOT NULL auto_increment,
PRIMARY KEY (AssetID),
PersonID int(11) unsigned,
INDEX PersonID_IDX (PersonID),
FOREIGN KEY (FK_PersonID) REFERENCES Person(PersonID)
ON DELETE CASCADE
ON UPDATE CASCADE
) Engine=INNODB;

我是 MySQL 新手。使用工作台 6.2我可以创建 Person 表,但不能创建 Locations 或 Assets 表。
1005 和 (errno 150) 建议表示赞赏。我认为我围绕外键的陈述顺序可能不正确,但不确定如何?

最佳答案

您必须更改代码才能使其正常工作。

您需要一个 CONSTRAINT 名称并使其独一无二。然后你需要提供正确的 FOREIGN KEY 而不是任何名称。例如 FOREIGN KEY (FK_PersonID) 应该是 FOREIGN KEY (PersonID)

还有,您不需要使用 USE snhpinventorytest; 3 次 :) 您可以使用一次。

希望对你有帮助

试试这段代码

USE snhpinventorytest;
CREATE TABLE Persons (
PersonID INT(11) unsigned NOT NULL auto_increment,
PRIMARY KEY (PersonID),
FirstName Varchar (50),
Lastname varchar(50)
) ENGINE=INNODB;

CREATE TABLE locations (
LocationID int(11) unsigned NOT NULL AUTO_INCREMENT,
PersonID int(11) unsigned DEFAULT NULL,
BuildingName varchar(50) DEFAULT NULL,
LocationType varchar(50) DEFAULT NULL,
RoomNumber varchar(20) DEFAULT NULL,
PRIMARY KEY (LocationID),
KEY PersonID_IDX (PersonID),
CONSTRAINT FK_PersonID1 FOREIGN KEY (PersonID) REFERENCES persons (PersonID) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS assets (
AssetID INT(11) UNSIGNED NOT NULL auto_increment,
PRIMARY KEY (AssetID),
PersonID int(11) unsigned,
INDEX PersonID_IDX (PersonID),
CONSTRAINT FK_PersonID2 FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
ON DELETE CASCADE
ON UPDATE CASCADE
) Engine=INNODB;

关于mysql - 在 MySQL 5.5 中创建三个相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com