我正在编写一个脚本,它必须更新某些行而不更改另一个创建几个表的脚本的内容。另一个条件是你不能改变或放弃约束。如何更新主键?
内容创建表的脚本:
CREATE TABLE TRUCK(
REGNUM VARCHAR(10) NOT NULL,
CAPACITY DECIMAL(7) NOT NULL,
WEIGHT DECIMAL(5) NOT NULL,
STATUS VARCHAR(10) NOT NULL,
CONSTRAINT TRUCK_PKEY PRIMARY KEY(REGNUM),
CONSTRAINT TRUCK_STATUS CHECK (STATUS IN ('AVAILABLE', 'MAINTAINED', 'USED'));
,并有一些行插入语句。
CREATE TABLE TRIP(
TNUM DECIMAL(10) NOT NULL,
LNUM DECIMAL(8) NOT NULL,
REGNUM VARCHAR(10) NOT NULL,
TRIP_DATE DATE NOT NULL,
CONSTRAINT TRIP_PKEY PRIMARY KEY(TNUM),
CONSTRAINT TRIP_FKEY1 FOREIGN KEY(LNUM) REFERENCES DRIVER(LNUM)
CONSTRAINT TRIP_FKEY2 FOREGIN KEY(REGNUM) REFERENCES TRUCK(REGNUM));
,并有一些行插入语句了。
这个脚本是讲师给出的,没有错误。现在
,我想:
UPDATE TRIP
SET REGNUN = 'PKR856'
WHERE REGNUM = 'SST005';
UPDATE TRUCK
SET REGNUN = 'PKR856'
WHERE REGNUM = 'SST005';
,这会给我一个错误 “无法删除/更新父行foregin关键constriant。”。给定脚本中的所有行插入语句都有完整的信息,并且行中有regnum = sst005。我试图先更新卡车,但它也不行。请帮助!
检查第一个答案在这里:http://stackoverflow.com/questions/2341576/updating- mysql-primary-key –
问题是你不能使用修改/删除约束 – strongbaby12
你是否尝试过该帖子的第二个答案? 'update IGNORE table set primary_field ='value'...............' – Jhecht