1
以下の構造を持つ2つのテーブルがあります。私が本の表に追加しようとすると、私が予想した子の行を追加または更新できないというエラーが発生します。私は、ブックテーブルに追加する前にパブリッシャ名をパブリッシャテーブルに追加するためのトリガを作成することができると期待していました。子テーブルに挿入するときに、親テーブルに値を挿入するためのトリガー
これは初めてのトリガーの作業で、私が間違っていることがわかりませんし、例が見つかりません。
create table publishers
(name varchar(25) not null,
address varchar(55),
phone varchar(12),
PRIMARY KEY(name)
) ENGINE = INNODB;
create table books
(book_id int(4) not null auto_increment,
title varchar(40),
publisher_name varchar(25),
primary key (book_id),
foreign key (publisher_name) references publishers(name) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=INNODB;
と私が作成しようとしていますトリガ:
DELIMITER ///
CREATE TRIGGER add_publisher BEFORE insert ON books
FOR EACH ROW
BEGIN
INSERT INTO publishers(name) values (books.pubisher_name);
END;
///
DELIMITER ;
このストアドプロシージャは、私が考えるより良い選択になります... – Blag
質問、mysqlのバージョンは何ですか? – Blag
@Blag私は5.1を使用しています。 –