gpt4 book ai didi

mysql - 创建数据库表错误150

转载 作者:行者123 更新时间:2023-11-29 21:40:50 25 4
gpt4 key购买 nike

我有这个代码:

 CREATE TABLE `osoby` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`nr_akt` varchar(10),
`imie1` varchar(20) NOT NULL,
`imie2` varchar(20),
`nazwisko` varchar(50) NOT NULL,
`pesel` int(11),
`Rel_Stanowisko` int(11) NOT NULL,
`IsDeleted` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`Id`),
CONSTRAINT `fk_Osoby_Stanowisko` FOREIGN KEY (`Rel_Stanowisko`) REFERENCES `stanowisko` (`id_stan`) ON DELETE NO ACTION ON UPDATE NO ACTION
);

CREATE TABLE `stanowisko` (
`id_stan` int(11) NOT NULL AUTO_INCREMENT,
`nazwa_stan` VARCHAR(40) NOT NULL,
`dzial` VARCHAR(40) NOT NULL,
`zakr_wynagr` VARCHAR(10),
`IsDeleted` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_stan`)
);

CREATE TABLE `dzial` (
`id_dzialu` int(4) NOT NULL AUTO_INCREMENT,
`nazwa_dzialu` VARCHAR(40) NOT NULL,
`skr_nazwa_dzialu` VARCHAR(10),
`IsDeleted` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_dzialu`)
);

CREATE TABLE pracownik (
`id_prac` int(6) NOT NULL AUTO_INCREMENT,
`id_osoby` int(6) NOT NULL,
`id_stan` int(4),
`id_dzialu` int(4),
`pensja` int(4),
`IsDeleted` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_prac`)
);

我知道问题出在外键上,但我不知道如何解决这个问题我有这个错误:

13:24:17    CREATE TABLE `osoby` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `nr_akt` varchar(10), `imie1` varchar(20) NOT NULL, `imie2` varchar(20), `nazwisko` varchar(50) NOT NULL, `pesel` int(11), `Rel_Stanowisko` int(11) NOT NULL, `IsDeleted` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`Id`), CONSTRAINT `fk_Osoby_Stanowisko` FOREIGN KEY (`Rel_Stanowisko`) REFERENCES `stanowisko` (`id_stan`) ON DELETE NO ACTION ON UPDATE NO ACTION )   Error Code: 1005. Can't create table 'hurtownia.osoby' (errno: 150) 0.327 sec

我无法创建表,因为错误号为 150。有人看到我哪里有问题吗?

最佳答案

您的第一个表依赖于第二个表。因此,首先创建第二个表,然后创建第一个表,或者更改顺序如下:

CREATE TABLE stanowisko ( id_stan int(11) NOT NULL AUTO_INCREMENT, nazwa_stan VARCHAR(40) NOT NULL, dzial VARCHAR(40) NOT NULL, zakr_wynagr VARCHAR(10), IsDeleted tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (id_stan) );

CREATE TABLE osoby ( Id int(11) NOT NULL AUTO_INCREMENT, nr_akt varchar(10), imie1 varchar(20) NOT NULL, imie2 varchar(20), nazwisko varchar(50) NOT NULL, pesel int(11), Rel_Stanowisko int(11) NOT NULL, IsDeleted tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (Id), CONSTRAINT fk_Osoby_Stanowisko FOREIGN KEY (Rel_Stanowisko) REFERENCES stanowisko (id_stan) ON DELETE NO ACTION ON UPDATE NO ACTION );

CREATE TABLE dzial ( id_dzialu int(4) NOT NULL AUTO_INCREMENT, nazwa_dzialu VARCHAR(40) NOT NULL, skr_nazwa_dzialu VARCHAR(10), IsDeleted tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (id_dzialu) );

CREATE TABLE pracownik ( id_prac int(6) NOT NULL AUTO_INCREMENT, id_osoby int(6) NOT NULL, id_stan int(4), id_dzialu int(4), pensja int(4), IsDeleted tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (id_prac) );

关于mysql - 创建数据库表错误150,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34529589/

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