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

Tambahkan batasan unik berdasarkan nilai bidang

Sebenarnya, Anda tidak mendefinisikan struktur bersyarat dalam sintaks DDL. Bidang Anda dapat berupa NULL atau NOT NULL - tidak ada opsi ketiga (dan tidak dapat bergantung pada bidang lain dalam struktur )

Tetapi Anda masih dapat meniru perilaku yang diinginkan melalui pemicu. Anda dapat menginterupsi UPDATE /INSERT pernyataan jika data yang masuk tidak valid dalam hal logika Anda. Itu bisa dilakukan melalui:

CREATE TRIGGER `bannedOnCheck`
BEFORE INSERT ON `fa_ranking_system`.`Player`
FOR EACH ROW
BEGIN
  IF(new.IsBanned && new.BannedOn IS NULL) THEN
    SIGNAL 'Integrity check failed: can not set banned without ban date'
  END IF
END



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbedaan antara gabungan kiri dan gabungan luar kiri

  2. Bagaimana cara mudah menentukan usia dari ulang tahun? (php)

  3. MySQL GROUP &COUNT Beberapa tabel

  4. MAX() vs GREATEST() di MySQL:Apa Bedanya?

  5. Bisakah Anda bergabung dalam subquery dengan Doctrine 2 DQL?