Bagaimana untuk menggunakan VIEWS untuk mensimulasikan CHECK CONSTRAINT?

WBOY
Lepaskan: 2023-08-27 14:37:09
ke hadapan
1131 orang telah melayarinya

如何使用 VIEWS 来模拟 CHECK CONSTRAINT?

Seperti yang kita semua tahu, MySQL menyokong kunci asing untuk integriti rujukan, tetapi tidak menyokong kekangan CHECK. Tetapi kita boleh mensimulasikannya dengan menggunakan pencetus. Masalah ini boleh diselesaikan dengan bantuan contoh yang diberikan di bawah -

Contoh

Andaikan kita mempunyai jadual bernama "kereta1" Nombor pendaftaran sintaks adalah seperti dua huruf, satu sempang, tiga digit, satu sempang, Dua huruf seperti ini -

mysql> Create table car1 (number char(9));
Query OK, 0 rows affected (0.32 sec)

mysql> Insert into car1 values('AB-235-YZ');
Query OK, 1 row affected (0.10 sec)
Salin selepas log masuk

Nilai di atas adalah sah, tetapi bagaimana dengan nilai yang ingin kita masukkan dalam pertanyaan seterusnya?

mysql> insert into car1 values('AB-2X5-YZ');
Query OK, 1 row affected (0.04 sec)
Salin selepas log masuk

Nilai di atas bukan nilai yang sah kerana ia mengandungi aksara antara nombor, yang melanggar sintaks tetap yang kami gunakan.

Buat VIEW untuk mensimulasikan KEKANGAN SEMAK untuk memasukkan dan mengemas kini nilai -

mysql> Create view car_invalid_check as
    -> Select * from car1 WHERE number rlike '^[[:alpha:]]{2}-[[:digit:]]{3}-[[:alpha:]]{2}$'
    -> with check option;
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into car_invalid_check values('AB-2X5-YZ');
ERROR 1369 (HY000): CHECK OPTION failed 'query.car_invalid_check'

mysql> Insert into car_invalid_check values('AB-235-YZ');
Query OK, 1 row affected (0.09 sec)

mysql> Update car_invalid_check SET NUMBER = 'AB-2X5-ZT';
ERROR 1369 (HY000): CHECK OPTION failed 'query.car_invalid_check'
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menggunakan VIEWS untuk mensimulasikan CHECK CONSTRAINT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!