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

mysql — MASUKKAN rentang tanggal ke dalam kolom tanggal JIKA tanggal tidak tumpang tindih dengan yang sudah ada

Sayangnya, hanya menggunakan MySQL ini tidak mungkin. Atau setidaknya, secara praktis. Cara yang lebih disukai adalah menggunakan batasan SQL CHECK, ini dalam standar bahasa SQL. Namun, MySQL tidak mendukungnya.

Lihat:https://dev.mysql.com/doc /refman/5.7/en/create-table.html

Tampaknya PostgreSQL mendukung CHECK constraint pada tabel, tetapi saya tidak yakin seberapa layak bagi Anda untuk mengganti mesin database atau apakah itu sepadan dengan masalahnya hanya dengan menggunakan fitur itu.

Di MySQL, pemicu dapat digunakan untuk mengatasi masalah ini, yang akan memeriksa baris yang tumpang tindih sebelum penyisipan/pembaruan terjadi dan menimbulkan kesalahan menggunakan SIGNAL penyataan. (Lihat:https://dev.mysql.com/doc/ refman/5.7/en/signal.html ) Namun, untuk menggunakan solusi ini, Anda harus menggunakan versi MySQL terbaru.

Terlepas dari solusi SQL murni, ini biasanya dilakukan dalam logika aplikasi, jadi program mana pun yang mengakses database MySQL biasanya memeriksa batasan semacam ini dengan meminta setiap baris yang dilanggar oleh entri baru di SELECT COUNT(id) ... penyataan. Jika jumlah yang dikembalikan lebih besar dari 0, itu tidak akan dimasukkan/diperbarui.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL PILIH LAST_INSERT_ID() untuk kunci majemuk. Apa itu mungkin?

  2. Bagaimana cara menarik kembali kata sandi yang diasinkan dari Database dan pengguna auth?

  3. Peringkat dengan jutaan entri

  4. Bagaimana Fungsi LOAD_FILE() Bekerja di MySQL

  5. php bagaimana cara menyimpan dan membaca data json melalui mysql?