1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

it's INSERT ... ON DUPLICATE KEY UPDATE , not INSERT ON DUPLICATE KEY UPDATE SET

This commit is contained in:
unknown
2002-12-02 22:04:26 +01:00
parent 6c4519e8db
commit 930b3fa897
3 changed files with 15 additions and 15 deletions

View File

@@ -1,31 +1,31 @@
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B)); CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
INSERT t1 VALUES (1,2,10), (3,4,20); INSERT t1 VALUES (1,2,10), (3,4,20);
INSERT t1 VALUES (5,6,30) ON DUPLICATE KEY UPDATE SET c=c+100; INSERT t1 VALUES (5,6,30) ON DUPLICATE KEY UPDATE c=c+100;
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
1 2 10 1 2 10
3 4 20 3 4 20
5 6 30 5 6 30
INSERT t1 VALUES (5,7,40) ON DUPLICATE KEY UPDATE SET c=c+100; INSERT t1 VALUES (5,7,40) ON DUPLICATE KEY UPDATE c=c+100;
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
1 2 10 1 2 10
3 4 20 3 4 20
5 6 130 5 6 130
INSERT t1 VALUES (8,4,50) ON DUPLICATE KEY UPDATE SET c=c+1000; INSERT t1 VALUES (8,4,50) ON DUPLICATE KEY UPDATE c=c+1000;
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
1 2 10 1 2 10
3 4 1020 3 4 1020
5 6 130 5 6 130
INSERT t1 VALUES (1,4,60) ON DUPLICATE KEY UPDATE SET c=c+10000; INSERT t1 VALUES (1,4,60) ON DUPLICATE KEY UPDATE c=c+10000;
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
1 2 10010 1 2 10010
3 4 1020 3 4 1020
5 6 130 5 6 130
INSERT t1 VALUES (1,9,70) ON DUPLICATE KEY UPDATE SET c=c+100000, b=4; INSERT t1 VALUES (1,9,70) ON DUPLICATE KEY UPDATE c=c+100000, b=4;
Duplicate entry '4' for key 2 Duplicate entry '4' for key 2
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
@@ -34,14 +34,14 @@ a b c
5 6 130 5 6 130
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
INSERT t1 VALUES (1,2,10), (3,4,20); INSERT t1 VALUES (1,2,10), (3,4,20);
INSERT t1 VALUES (5,6,30), (7,4,40), (8,9,60) ON DUPLICATE KEY UPDATE SET c=c+100; INSERT t1 VALUES (5,6,30), (7,4,40), (8,9,60) ON DUPLICATE KEY UPDATE c=c+100;
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
1 2 10 1 2 10
3 4 120 3 4 120
5 6 30 5 6 30
8 9 60 8 9 60
INSERT t1 SET a=5 ON DUPLICATE KEY UPDATE SET b=0; INSERT t1 SET a=5 ON DUPLICATE KEY UPDATE b=0;
SELECT * FROM t1; SELECT * FROM t1;
a b c a b c
1 2 10 1 2 10

View File

@@ -1,21 +1,21 @@
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B)); CREATE TABLE t1 (a INT, b INT, c INT, UNIQUE (A), UNIQUE(B));
INSERT t1 VALUES (1,2,10), (3,4,20); INSERT t1 VALUES (1,2,10), (3,4,20);
INSERT t1 VALUES (5,6,30) ON DUPLICATE KEY UPDATE SET c=c+100; INSERT t1 VALUES (5,6,30) ON DUPLICATE KEY UPDATE c=c+100;
SELECT * FROM t1; SELECT * FROM t1;
INSERT t1 VALUES (5,7,40) ON DUPLICATE KEY UPDATE SET c=c+100; INSERT t1 VALUES (5,7,40) ON DUPLICATE KEY UPDATE c=c+100;
SELECT * FROM t1; SELECT * FROM t1;
INSERT t1 VALUES (8,4,50) ON DUPLICATE KEY UPDATE SET c=c+1000; INSERT t1 VALUES (8,4,50) ON DUPLICATE KEY UPDATE c=c+1000;
SELECT * FROM t1; SELECT * FROM t1;
INSERT t1 VALUES (1,4,60) ON DUPLICATE KEY UPDATE SET c=c+10000; INSERT t1 VALUES (1,4,60) ON DUPLICATE KEY UPDATE c=c+10000;
SELECT * FROM t1; SELECT * FROM t1;
-- error 1062 -- error 1062
INSERT t1 VALUES (1,9,70) ON DUPLICATE KEY UPDATE SET c=c+100000, b=4; INSERT t1 VALUES (1,9,70) ON DUPLICATE KEY UPDATE c=c+100000, b=4;
SELECT * FROM t1; SELECT * FROM t1;
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
INSERT t1 VALUES (1,2,10), (3,4,20); INSERT t1 VALUES (1,2,10), (3,4,20);
INSERT t1 VALUES (5,6,30), (7,4,40), (8,9,60) ON DUPLICATE KEY UPDATE SET c=c+100; INSERT t1 VALUES (5,6,30), (7,4,40), (8,9,60) ON DUPLICATE KEY UPDATE c=c+100;
SELECT * FROM t1; SELECT * FROM t1;
INSERT t1 SET a=5 ON DUPLICATE KEY UPDATE SET b=0; INSERT t1 SET a=5 ON DUPLICATE KEY UPDATE b=0;
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1; DROP TABLE t1;

View File

@@ -3063,7 +3063,7 @@ opt_insert_update:
YYABORT; YYABORT;
} }
} }
KEY_SYM UPDATE_SYM SET update_list KEY_SYM UPDATE_SYM update_list
; ;
/* Update rows in a table */ /* Update rows in a table */