2

mysql で再実行可能な SQL スクリプトを作成する方法はありますか? : 'IF EXISTS' 構文を試しましたが、ストアド プロシージャに対してのみ機能するようです。「select if」構文が私が望むことをするようには見えません。

理想的には、次のようなことをしたいと思います:

IF NOT EXISTS (select * from table where name='Name') Then insert into table values('Name');
else select 'Name has already been inserted into table';
end if;

ありがとう。

4

4 に答える 4

1

次を使用できる場合があります。

INSERT IGNORE INTO t1 ...

行が挿入されたかどうかをリターンから確認できます。一意の制約がある必要があることに注意してください。そうしないと、重複するだけです。主キーがある場合、これも一意の制約です。

于 2009-12-08T21:14:43.863 に答える
0
insert into myTable(name)
select 'some_name_value' from myTable
where not exists (select 1 from myTable where name = 'some_name_value')
limit 1;

値がまだ存在しない場合は値を挿入します。

于 2009-12-08T21:19:56.477 に答える
0

データベース スキーマのリビジョンを適切なテーブルに保存し、それを更新処理の基準として使用できますか?

于 2009-12-08T21:10:14.733 に答える
-2

(SQL Server)のような構造を使用します

IF 0 = (SELECT COUNT(*) FROM <your table> WHERE <your condition>)
BEGIN
    <your work here>
END

繰り返し可能にしたい SQL セクションを管理します。スクリプトが再実行され、値がそこにある場合、count(*) はゼロではなく、再度作業を行いません。

于 2009-12-08T21:10:57.133 に答える