: MYSQL , :
insert into table_name(email,phone,user_id) values(‘[email protected]’,’99999′,’9999′) ,
: , , ,. , ( )。
:REPLACE
replace :
1. replace into table_name(col_name, …) values(…)
2. replace into table_name(col_name, …) select …
3. replace into table_name set col_name=value, …
:
REPLACE INSERT , , , , :
1.
2. :
: PRIMARY KEY UNIQUE , , REPLACE 。
INSERT , 。
:
REPLACE , 。 。
REPLACE , REPLACE : 1( ) ( )。
:
eg:(phone )
replace into table_name(email,phone,user_id) values(‘test569′,’99999′,’123′)
: SQL Server :
if not exists (select phone from t where phone= ‘1’)
insert into t(phone, update_time) values(‘1′, getdate())
else
update t set update_time = getdate() where phone= ‘1’
:http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#replace
:ON DUPLICATE KEY UPDATE
, INSERT INTO….. ON DUPLICATE KEY UPDATE 。
ON DUPLICATE KEY UPDATE, UNIQUE PRIMARY KEY ,
UPDATE。 , a UNIQUE, 1, :
mysql>INSERT INTO table (a,b,c) VALUES (1,2,3)
->ON DUPLICATE KEY UPDATE c=c+1;
mysql>UPDATE table SET c=c+1 WHERE a=1;
, 1; , 2。
: b , INSERT UPDATE :
mysql> UPDATE table SET c=c+1 WHERE a=1 OR b=2 LIMIT 1;
a=1 OR b=2 , 。 , ON DUPLICATE KEY 。
UPDATE VALUES(col_name) INSERT…UPDATE INSERT 。
, , UPDATE VALUES(col_name) col_name 。 。VALUES() INSERT…UPDATE , NULL。
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
-> ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
:
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3)
-> ON DUPLICATE KEY UPDATE c=3;
mysql> INSERT INTO table (a,b,c) VALUES (4,5,6)
-> ON DUPLICATE KEY UPDATE c=9;
ON DUPLICATE KEY UPDATE ,DELAYED 。
:
1: , , 。
(displayid )
INSERT INTO
cdqsscms_house_hot_top (displayid,x1,x2,x3,x4,x5,last_updated)
VALUES(2820,1,63,79,54,45,1311053750)
ON DUPLICATE KEY UPDATE
x1=x1+ 1,
x2=x2+ 63,
x3=x3+ 79,
x4=x4+ 54,
x5=x5+ 45,
last_updated= 1311053750
2( select ..from…): , ( )。
:email
INSERT INTO table_name1(title,first_name,last_name,email,phone,user_id,role_id,status,campaign_id)
SELECT ”,”,”,table_name2.email,table_name2.phone,NULL,NULL,’pending’,29
FROM table_name2
WHERE table_name2.status = 1
ON DUPLICATE KEY UPDATE table_name1.status = ‘pending’
, ~
:DELAYED , , 。
IGNORE , , 。
: http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert
: MYSQL UNIQUE null , (a ):
insert into test(a) values(null)
insert into test(a) values(null)
( )。 :http://drupal.org/node/225887
: » MYSQL ( )