diff --git a/sql-queries-7/README b/sql-queries-7/README new file mode 100644 index 00000000..a96ddcca --- /dev/null +++ b/sql-queries-7/README @@ -0,0 +1,2 @@ +### Relevant Articles: + diff --git a/sql-queries-7/insert-or-update-if-exists/merge-sql-server.sql b/sql-queries-7/insert-or-update-if-exists/merge-sql-server.sql new file mode 100644 index 00000000..a6c91fcb --- /dev/null +++ b/sql-queries-7/insert-or-update-if-exists/merge-sql-server.sql @@ -0,0 +1,11 @@ +INSERT INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CS'); + +MERGE INTO Department AS target +USING (SELECT 1 AS id, 'Computer Science' AS name, 'CSE' AS code) AS source +ON target.id = source.id +WHEN MATCHED THEN + UPDATE SET name = source.name, code = source.code +WHEN NOT MATCHED THEN + INSERT (id, name, code) VALUES (source.id, source.name, source.code); + +SELECT * from Department; \ No newline at end of file diff --git a/sql-queries-7/insert-or-update-if-exists/on-conflict-postgresql.sql b/sql-queries-7/insert-or-update-if-exists/on-conflict-postgresql.sql new file mode 100644 index 00000000..71ce4199 --- /dev/null +++ b/sql-queries-7/insert-or-update-if-exists/on-conflict-postgresql.sql @@ -0,0 +1,6 @@ +INSERT INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CS'); + +INSERT INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CSE') +ON CONFLICT (id) DO UPDATE SET name = 'Computer Science', code = 'CSE'; + +SELECT * from Department; \ No newline at end of file diff --git a/sql-queries-7/insert-or-update-if-exists/on-duplicate-key-mysql.sql b/sql-queries-7/insert-or-update-if-exists/on-duplicate-key-mysql.sql new file mode 100644 index 00000000..3faed4f2 --- /dev/null +++ b/sql-queries-7/insert-or-update-if-exists/on-duplicate-key-mysql.sql @@ -0,0 +1,6 @@ +INSERT INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CS'); + +INSERT INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CSE') +ON DUPLICATE KEY UPDATE name = 'Computer Science', code = 'CSE'; + +SELECT * from Department; \ No newline at end of file diff --git a/sql-queries-7/insert-or-update-if-exists/replace-mysql.sql b/sql-queries-7/insert-or-update-if-exists/replace-mysql.sql new file mode 100644 index 00000000..3f2d8316 --- /dev/null +++ b/sql-queries-7/insert-or-update-if-exists/replace-mysql.sql @@ -0,0 +1,5 @@ +INSERT INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CS'); + +REPLACE INTO Department (id, name, code) VALUES (1, 'Computer Science', 'CSE'); + +SELECT * from Department; \ No newline at end of file