我正在編寫一個腳本,它必須更新某些行而不更改另一個創建幾個表的腳本的內容。另一個條件是你不能改變或放棄約束。如何更新主鍵?
內容創建表的腳本:
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