· 8 years ago · Jul 22, 2018, 08:08 PM
1INSERT INTO data SELECT * FROM data_buffer;
2DELETE FROM data_buffer;
3
4SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
5BEGIN TRANSACTION;
6INSERT INTO data (SELECT * FROM data_buffer FOR UPDATE);
7DELETE FROM data_buffer;
8COMMIT TRANSACTION;
9
10DELETE FROM data_buffer
11WHERE primarykey IN (SELECT primarykey FROM data)
12
13CREATE TABLE IF NOT EXISTS data_buffer_new LIKE data_buffer;
14RENAME TABLE data_buffer TO data_buffer_old, data_buffer_new TO data_buffer;
15INSERT INTO data SELECT * FROM data_buffer_old;
16DROP TABLE data_buffer_old;
17
18LOCK TABLE data_buffer READ;
19INSERT INTO data SELECT * FROM data_buffer;
20DELETE FROM data_buffer;
21UNLOCK TABLE;
22
23LOCK TABLE data_buffer WRITE;
24INSERT INTO data_buffer VALUES (1, 2, 3);
25UNLOCK TABLE;