无法删除或更新父行:外键约束失败。 MagicDraw 表格错误
Cannot delete or update a parent row: a foreign key constraint fails. MagicDraw tables error
我有一个任务,我必须在 MagicDraw 中制作表格,然后生成 MySQL 代码。我将生成的代码粘贴到 phpMyAdmin 中的 SQL 代码部分,它显示错误:
SQL查询:
DROP TABLE IF EXISTS LogistikosCentras;
MySQL 答案:
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
这些是我的表格:
这是我的一些代码:
CREATE TABLE LogistikosCentras
(
pavadinimas varchar (255) NOT NULL,
adresas varchar (255) NOT NULL,
telefonas int NOT NULL,
el_pastas varchar (255) NOT NULL,
id_LogistikosCentras integer NOT NULL,
PRIMARY KEY(id_LogistikosCentras)
);
CREATE TABLE SiuntosPervezimoTarnyba
(
pavadinimas varchar (255) NOT NULL,
transportoPriemonesTalpa double precision NOT NULL,
transportoPriemoniuKiekis int NOT NULL,
transportoPriemone varchar (15) NOT NULL,
pristatymoGreitis varchar (8) NOT NULL,
id_SiuntosPervezimoTarnyba integer NOT NULL,
CHECK(transportoPriemone in ('sunkvezimis', 'laivas', 'lektuvas',
'lengvojiMasina')),
CHECK(pristatymoGreitis in ('valandos', 'dienos')),
PRIMARY KEY(id_SiuntosPervezimoTarnyba)
);
CREATE TABLE Darbuotojas
(
vardas varchar (255) NOT NULL,
pavarde varchar (255) NOT NULL,
tabelio_nr char (255) NOT NULL,
pareigos char (10) NOT NULL,
id_Darbuotojas integer NOT NULL,
fk_LogistikosCentrasid_Logistikoscentras integer NOT NULL,
CHECK(pareigos in ('buhalteris', 'krovejas')),
PRIMARY KEY(id_Darbuotojas, fk_LogistikosCentrasid_Logistikoscentras),
CONSTRAINT dirba FOREIGN KEY(fk_LogistikosCentrasid_Logistikoscentras)
REFERENCES LogistikosCentras (id_LogistikosCentras)
);
我只是颠倒了删除表的请求的顺序并且成功了。
我有一个任务,我必须在 MagicDraw 中制作表格,然后生成 MySQL 代码。我将生成的代码粘贴到 phpMyAdmin 中的 SQL 代码部分,它显示错误:
SQL查询:
DROP TABLE IF EXISTS LogistikosCentras;
MySQL 答案:
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
这些是我的表格:
这是我的一些代码:
CREATE TABLE LogistikosCentras
(
pavadinimas varchar (255) NOT NULL,
adresas varchar (255) NOT NULL,
telefonas int NOT NULL,
el_pastas varchar (255) NOT NULL,
id_LogistikosCentras integer NOT NULL,
PRIMARY KEY(id_LogistikosCentras)
);
CREATE TABLE SiuntosPervezimoTarnyba
(
pavadinimas varchar (255) NOT NULL,
transportoPriemonesTalpa double precision NOT NULL,
transportoPriemoniuKiekis int NOT NULL,
transportoPriemone varchar (15) NOT NULL,
pristatymoGreitis varchar (8) NOT NULL,
id_SiuntosPervezimoTarnyba integer NOT NULL,
CHECK(transportoPriemone in ('sunkvezimis', 'laivas', 'lektuvas',
'lengvojiMasina')),
CHECK(pristatymoGreitis in ('valandos', 'dienos')),
PRIMARY KEY(id_SiuntosPervezimoTarnyba)
);
CREATE TABLE Darbuotojas
(
vardas varchar (255) NOT NULL,
pavarde varchar (255) NOT NULL,
tabelio_nr char (255) NOT NULL,
pareigos char (10) NOT NULL,
id_Darbuotojas integer NOT NULL,
fk_LogistikosCentrasid_Logistikoscentras integer NOT NULL,
CHECK(pareigos in ('buhalteris', 'krovejas')),
PRIMARY KEY(id_Darbuotojas, fk_LogistikosCentrasid_Logistikoscentras),
CONSTRAINT dirba FOREIGN KEY(fk_LogistikosCentrasid_Logistikoscentras)
REFERENCES LogistikosCentras (id_LogistikosCentras)
);
我只是颠倒了删除表的请求的顺序并且成功了。