MySQL����ʹ��"replace into"
MySQL �� SQL �кܶ���չ����Щ�������ܷ��㣬����һЩ������֮�������������⣬������һЩ����֮���ĸ����ã����� REPLACE INTO��
����������һ�ű���
CREATE TABLE `auto` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `k` int(10) unsigned NOT NULL, `v` varchar(100) DEFAULT NULL, `extra` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_k` (`k`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
auto ����һ�������� id �ֶ���Ϊ�������ֶ� k �� UNIQUE KEY ��Ψһ��Լ����д�뼸����¼֮������������
xupeng@diggle7:3600(dba_m) [dba] mysql> INSERT INTO auto (k, v, extra) VALUES (1, '1', 'extra 1'), (2, '2', 'extra 2'), (3, '3', 'extra 3');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
xupeng@diggle7:3600(dba_m) [dba] mysql> SHOW CREATE TABLE auto\G
*************************** 1. row ***************************
Table: auto
Create Table: CREATE TABLE `auto` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`k` int(10) unsigned NOT NULL,
`v` varchar(100) DEFAULT NULL,
`extra` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_k` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.01 sec)
xupeng@diggle7:3600(dba_m) [dba] mysql> SELECT * FROM auto;
+----+---+------+---------+
| id | k | v | extra |
+----+---+------+---------+
| 1 | 1 | 1 | extra 1 |
| 2 | 2 | 2 | extra 2 |
| 3 | 3 | 3 | extra 3 |
+----+---+------+---------+
3 rows in set (0.00 sec)
�� slave �ڵ����Ǻ� master һ�µģ�
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
���Կ�����д��������¼֮����auto ���� AUTO_INCREMENT ����Ϊ 4��Ҳ����˵��һ�����ֹ�Ϊ id ָ��ֵ�ļ�¼��id �ֶε�ֵ���� 4��
������ʹ�� REPLACE INTO ��д��һ����¼��
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
���Կ��� MySQL ˵ ��2 rows affected��������������ֻдһ����¼��Ϊʲô�أ�������Ϊ MySQL ��ִ�� REPLACE INTO auto (k) VALUES (1) ʱ���ȳ��� INSERT INTO auto (k) VALUES (1)���������Ѿ�����һ�� k=1 �ļ�¼�������� duplicate key error������ MySQL ����ɾ�����е����� k=1 �� id=1 �ļ�¼��Ȼ������д��һ���µļ�¼��
��ʱ�� slave �ϳ����˹��������⣺
1 2 3 4 5 6 7 8 9 10 11 | |
����֪������ǰ�������� id �ֶε�����ֵ�� 4��AUTO_INCREMENT Ӧ��Ϊ 5������ slave �� AUTO_INCREMENT ȴ��δ���£�������ʲô�����أ������� slave ����Ϊ master ֮�������� AUTO_INCREMENT ��ʵ�ʵ� next id ��ҪС��д���¼�¼ʱ�ͻᷢ�� duplicate key error��ÿ�γ�ͻ֮�� AUTO_INCREMENT += 1��ֱ������Ϊ max(id) + 1 ֮�����ָܻ�������
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
û��Ԥ�ϵ� MySQL �����ݳ�ͻʱʵ������ɾ���˾ɼ�¼����д���¼�¼������ʹ�� REPLACE INTO ʱ������һ����������֮ǰ��������˵��ִ���� REPLACE INTO auto (k, v) VALUES (1, ��1-1��) ֮����������д����¼ʱ��δ�� extra �ֶ�ָ��ֵ��ԭ��¼ extra �ֶε�ֵ�͡���ʧ���ˣ���ͨ���Ⲣ����ҵ������Ԥ�ڵģ�������������ʵ�����ǣ������� k=1 �ļ�¼ʱ���Ͱ� v �ֶε�ֵ����Ϊ ��1-1��������δָ�����ֶ���ԭ״����������һ������ MySQL ������ INSERT INTO auto (k, v) VALUES (1, ��1-1��) ON DUPLICATE KEY UPDATE v=VALUES(v);
���ڴˣ��ܶ�ʹ�� REPLACE INTO �ij�����ʵ������Ҫ���� INSERT INTO �� ON DUPLICATE KEY UPDATE������ȷ���� REPLACE INTO ��Ϊ�����õ�ǰ���£�����ʹ�� REPLACE INTO��
ԭ�ģ�http://blog.xupeng.me/2013/10/11/mysql-replace-into-trap/
- ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
- �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
- �������е���ɫ
- �������ж�IP��ַ��A��B���C��
- ������ϵ��Ц�� (ʷ����ȫ��
- ��Google���������ŵ���ͨv4.0
- ���ٶ�ͳ��URL��hm������utm�����Ķ�Ӧ��ϵ
- ��ƻ������MACbook Air���ݼ���ȫ
- ��Linux��ʹ��host��dig��nslookup��ѯDNS
- ���������ԡ���װ Windows XP ����ϵͳ��ͼ��ȫ����
- �����Լ���VPS�Google��������
- ��С�ڴ�VPS֮Nginx+PHP-fpm�߸����Ż���ѹ�����Է���
- ������������������̸�����ɶ��ر�
- ��������������ѡʳƷ����2020�ļ��ȵ�Ͷ�ʲ��Ժ���������
- �����ڵ�����֤50���ƴ�50����ָ֤�������Ĺ���
- ����֤50����Щ��Ʊ_��֤50Ȩ����������
- ������300����֤50����֤500��ָ��2019���ڶ��ζ��ڵ���������
- ������300��ֵ/�ɳ�ָ�����Ʒ����������й�ƽ��Ȩ���½�
- ����ָ֤��������֤50��ָ��������
- ����ָ֤��������֤����ָ��������
- ����ָ֤��������֤100ָ��������
- ����ָ֤����������300ָ��������