2

データベースに一連のデータを挿入しましたが、値が空白のすべての行を削除したいと考えています。これどうやってするの?これはトリガーを使用して実行できますか?

例:

テーブル BOOKS にはauthor_nametitle、が含まれていますprice

データを挿入した後、列の値が空の行をすべて削除したいと考えていauthor_nameます。これまでに書いたものは次のとおりです。

CREATE TRIGGER trigger1
  AFTER INSERT
  ON  BOOKS
  FOR EACH ROW 
  BEGIN
  DELETE FROM BOOKS WHERE author_name = ''  
END;

これは機能していません:(

4

1 に答える 1

1

問題は、 .BEGIN…ENDで区切られていないステートメントを回避していることです;;ただし、不足している;.

したがって、ステートメント;の最後に a を置き、トリガー定義の前にa を導入します。DELETEDELIMITER

DELIMITER $$
CREATE TRIGGER trigger1
  AFTER INSERT
  ON  BOOKS
  FOR EACH ROW 
BEGIN
  DELETE FROM BOOKS WHERE author_name = '';
END
$$

または、本文にはステートメントが 1 つしか含まれていないため、次のステートメントを単純に削除できますBEGIN…END

CREATE TRIGGER trigger1
  AFTER INSERT
  ON  BOOKS
  FOR EACH ROW 
DELETE FROM BOOKS WHERE author_name = '';
于 2013-04-09T07:26:26.003 に答える