0
"LOAD DATA LOCAL INFILE"によって作成されたテンポラリテーブル "teststepdump"があります。一時テーブルは、テーブルTestResultで一緒に外部キーによって接続された別のテーブルのデータを含む:MYSQL異なるテーブルの外部キーを使用してテーブルにデータを挿入
- teststepdump(dummyno、stationno、名前、結果)
- (ID、DUTID、processTime)
- DUT duttest (ID、DummyNr)
- 局(ID、stationno)
- teststepname(ID、名前)
- teststepresult(DUTTestID、TeststepID、結果)
- 私は、ストアドプロシージャを使用して、この方法を試したが、私はエラー1452を取得:
SQL Fehler(1452):子行を追加または更新できません:外部キー 制約が失敗した(
database
を。teststepresult
、単一のINSERTこのストアドプロシージャの制約teststepresult_ibfk_1
FOREIGN KEY(DUTTestID
)duttest
(ID
)を参照UPDATE CASCADE ON DELETE CASCADE ON)
BEGIN
DECLARE dt_id INT;
SELECT teststepresult.DUTTestID INTO dt_id FROM teststepresult
INNER JOIN duttest ON teststepresult.DUTTestID = duttest.ID
INNER JOIN dut ON duttest.DUTID = dut.ID
INNER JOIN station ON duttest.StationID = station.Nummer
INNER JOIN teststepdump ON teststepresult.ID = teststepdump.ID
WHERE
dut.DummyNr = teststepdump.dummyno AND
station.Nummer = teststepdump.stationno;
INSERT INTO teststepresult (DUTTestID, TeststepID, Result)
SELECT dt_id, teststepname.ID, teststepdump.Result
FROM teststepdump
INNER JOIN teststepname ON teststepdump.name = teststepname.name
WHERE
teststepname.name = teststepdump.name;
terminate teststepdump;
END
は私のために働いているが、私は避けたいです"for" Loop;:
BEGIN
DECLARE t_id INT;
DECLARE tn_id INT;
SELECT teststepname.ID INTO tn_id FROM teststepname
WHERE teststepname.Name = name;
SELECT duttest.ID INTO t_id FROM duttest
INNER JOIN dut ON duttest.DUTID = dut.ID
INNER JOIN station ON duttest.stationID = station.ID
WHERE
dut.DummyNr = dummyno AND
station.Nummer = stationno;
IF NOT t_id IS NULL AND NOT tn_id IS NULL THEN
INSERT INTO teststepresult (DUTTestID, TeststepID, Result)
VALUES (t_id, tn_id, Result);
END IF;
END
テーブル 'teststepdump'の構造を教えてください。 (0)、 'stationno' INT(11)は、作成したSQLコードを意味します。 –
CREATE TABLE' teststepdump'( 'ID' INT(11)NOT NULL AUTO_INCREMENT、 ' dummyno' BIGINT(20)NOT NULL DEFAULT '0' NOT NULL DEFAULT '0'、 'name'のVARCHAR(50)NOT NULL DEFAULT '0' COLLATE 'utf8_bin'、' Result' TINYINT(4)NULLデフォルトNULL、 PRIMARY KEY( 'ID') – Fantomas
それはdoesnのようです外部キーを持っています...あなたは 'teststepresult'の構造を表示できますか? –