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

Kolom INT seperti SERIAL

Dengan DBMS Informix, kolom SERIAL tidak akan berubah setelah dimasukkan; memang, Anda tidak dapat memperbarui nilai SERIAL sama sekali. Anda dapat memasukkan yang baru dengan 0 sebagai nilai - dalam hal ini nilai baru dihasilkan - atau Anda dapat memasukkan beberapa nilai lain. Jika nilai lain sudah ada dan ada batasan unik, itu akan gagal; jika tidak ada, atau jika tidak ada batasan unik pada kolom serial, maka itu akan berhasil. Jika nilai yang dimasukkan lebih besar dari nilai terbesar yang dimasukkan sebelumnya, maka angka berikutnya yang akan dimasukkan akan menjadi lebih besar lagi. Jika angka yang dimasukkan lebih kecil, atau negatif, maka tidak ada efek pada angka berikutnya.

Jadi, Anda dapat melakukan pembaruan tanpa mengubah nilainya - tidak masalah. Jika Anda perlu mengubah nomornya, Anda harus melakukan hapus dan sisipkan (atau sisipkan dan hapus), di mana sisipan memiliki nol di dalamnya. Jika Anda lebih suka konsistensi dan Anda menggunakan transaksi, Anda selalu dapat menghapus, dan kemudian (kembali) memasukkan baris dengan nomor yang sama atau dengan nol untuk memicu nomor baru. Ini mengasumsikan Anda memiliki bahasa pemrograman yang menjalankan SQL; Saya rasa Anda tidak dapat mengubah ISQL dan Perform untuk melakukannya secara otomatis.

Jadi, pada titik ini, saya tidak melihat masalah di Informix.

Dengan versi IDS yang sesuai (apa pun yang didukung), Anda dapat menggunakan SEQUENCE untuk mengontrol nilai yang dimasukkan juga. Ini didasarkan pada sintaks dan konsep Oracle; DB2 juga mendukung ini. DBMS lain memiliki mekanisme lain yang setara (tetapi berbeda) untuk menangani nomor yang dibuat secara otomatis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. buat semua bilangan bulat kenaikan otomatis dengan jumlah digit yang sama dengan nol di depan

  2. Tambahkan kolom baru ke tabel yang ada dalam migrasi di Laravel

  3. Kesalahan sintaks MySQL membuat prosedur tersimpan

  4. Sakit kepala Mysql 5.6 di Mac OSX

  5. Baris pertama data dari MYSQL tidak ada