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

Apakah mungkin untuk INSERT dan kemudian PILIH baris yang dimasukkan satu demi satu?

JIKA ANDA MENGGUNAKAN INNODB:

Jika Anda menggunakan INNODB, karena Anda memverifikasi baris yang dimasukkan, itu seharusnya dikembalikan dengan SELECT, selama SELECT menanyakan kunci dari baris aktual yang dimasukkan. (Apakah Anda yakin tidak menggunakan fitur seperti INSERT DELAYED? Itu dapat mencegah baris dikembalikan.)

JIKA ANDA MENGGUNAKAN MYISAM:

Karena MyISAM tidak mendukung transaksi, SELECT harus mengembalikan sisipan, tetapi saya tidak dapat menemukan apa pun yang menyatakan bahwa ini sebenarnya dijamin.

CATATAN:URL pertama yang tercantum di bawah ini menyatakan jika Anda menggunakan MYISAM (default menurut tautan ini), INSERTS akan mengunci tabel. Namun, URL kedua menyatakan bahwa kunci yang ditempatkan oleh sisipan adalah kunci yang dapat dibaca, sehingga seharusnya tidak mencegah tabel untuk dibaca.

http://www.sitepoint.com/mysql-mistakes-php-developers/

http://aarklondatabasetrivia .blogspot.com/2009/04/how-to-lock-and-unlock-tables-in-mysql.html

JIKA ANDA MENGGUNAKAN INNODB (LANJUT):

    Jika AUTOCOMMIT sedang digunakan di sistem Anda (saya tidak yakin), Anda seharusnya melihat baris yang dipilih (pertanyaan ini menyatakan bahwa baris yang dimasukkan telah diverifikasi sebagai telah ditambahkan ke database).

    Jika sebuah transaksi sedang digunakan, transaksi tersebut harus telah dilakukan (pertanyaan ini menyatakan bahwa baris yang dimasukkan telah diverifikasi sebagai telah ditambahkan ke database).

    Apakah Anda yakin kueri SELECT yang dijalankan pertama kali sama dengan yang kedua kalinya?

    Apakah Anda yakin $user['social_id'] apakah nilainya sama setelah INSERT dan pada saat SELECT?

    Jika, karena alasan tertentu, Anda menggunakan INSERT DELAYED, baris tidak dapat dikembalikan

CATATAN:Menurut URL ini, JIKA Anda telah memulai transaksi, baris yang dipilih akan ditampilkan pada pernyataan SELECT berikutnya (bukan di PHP):

http://zetcode.com/databases/mysqltutorial/transactions/

Pernyataan ini menyiratkan bahwa jika Anda memulai transaksi, Anda tidak perlu mengatur AUTOCOMMIT:

"MySQL juga secara otomatis melakukan pernyataan yang bukan bagian dari transaksi."

URL ini menjelaskan cara memulai transaksi di PHP:

Contoh transaksi PHP + MySQL




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. memuat data file lokal ERROR 2 file tidak ditemukan

  2. masukkan ke dalam tabel pilih max(column_name)+1

  3. while($row =mysql_fetch_assoc($result)) - Bagaimana cara melakukan $row?

  4. Bagaimana cara menghitung kemunculan pertama dari suatu nilai?

  5. Mengalami masalah dengan Gabung MySQL yang harus memenuhi berbagai kondisi