Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL dan kunci tabel, baca, lalu potong

Anda tidak dapat memotong tabel yang dikunci untuk menulis. Ini karena "truncate" berarti "hancurkan tabel, dan buat ulang tabel baru dengan skema yang sama."

Namun Anda dapat, kosong meja. Alih-alih TRUNCATE TABLE asin_one_time_only gunakan DELETE FROM asin_one_time_only . Perhatikan bahwa ini tidak akan mengatur ulang penomoran kenaikan otomatis. Jika Anda ingin mengatur ulang juga, gunakan ALTER TABLE asin_one_time_only auto_increment=1

Saya sarankan melakukan ini:

LOCK TABLES asin_one_time_only READ;
SELECT asin FROM asin_one_time_only;
-- minimize the possibility of someone writing to the table in-between
-- an "UNLOCK TABLES" and a "LOCK TABLES" by just issuing a new LOCK TABLES
-- I am not 100% sure that MySQL will do this atomically, so there is a
-- possibility that you may delete a row that was not read.
-- If this is unacceptable, then use a "LOCK TABLES asin_one_time_only WRITE"
-- from the very beginning.
LOCK TABLES asin_one_time_only WRITE;
DELETE FROM asin_one_time_only;
ALTER TABLE asin_one_time_only auto_increment=1;
UNLOCK TABLES;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. apakah mungkin untuk akses jarak jauh ke database mysql di shared hosting?

  2. Menghubungkan ke database mySQL menggunakan asp.net

  3. SQL IN Clause - dapatkan kembali elemen IN yang tidak cocok

  4. DETERMINISTIK, TANPA SQL, atau BACA DATA SQL dalam deklarasinya dan pencatatan biner diaktifkan

  5. kunci utama id khusus tidak dapat diambil setelah metode save() Laravel