Идемпотентность DML

Рассмотрим определения идемпотентности и DML:

Идемпотентность добавления новых данных

MS Sql Server

IF NOT EXISTS(SELECT * FROM table_name WHERE condition) BEGIN INSERT INTO table_name (column1, column2, ...) SELECT 'new_value1', 'new_value2', ... END
Code language: JavaScript (javascript)

Firebird

INSERT INTO table_name (column1, column2, ...) SELECT `new_value1`, 'new_value2', ... FROM RDB$DATABASE WHERE NOT EXISTS ( SELECT 1 FROM table_name WHERE condition );
Code language: JavaScript (javascript)

MySQL

INSERT INTO `table_name` (`column1`, `column2`, ...) SELECT `new_value1`, 'new_value2', ... FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `table_name` WHERE condition );
Code language: JavaScript (javascript)

Oracle

INSERT INTO schema.table_name (column1, column2, ...) SELECT 'new_value1', 'new_value2', ... FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM schema.table_name WHERE condition );
Code language: JavaScript (javascript)

Добавить комментарий