Seni bina
create table course (course_id varchar(8), title varchar(50), dept_name varchar(20), credits numeric(2,0) check (credits > 0), primary key (course_id), foreign key (dept_name) references department (dept_name) on delete set null );
Saya ingin menambah data ini pada jadual tetapi tidak boleh menambah 0 mata.
"CS-001", bertajuk "Seminar Mingguan", 0 Kredit
Sisipkan pertanyaan
INSERT INTO `course`(`course_id`, `title`, `credits`) VALUES ('CS-001','Weekly Seminar','0');
Hasil pertanyaan:
Adakah terdapat cara lain untuk memasukkan data yang sama tanpa mengubah struktur jadual?
Pilihan
foreign_key_checks
mempengaruhi penguatkuasaan kunci asing, bukan menyemak penguatkuasaan kekangan.Anda mesti menggunakan
ALTER TABLE
, tetapi anda tidak perlu mengeluarkan kekangan.Tetapi sebaik sahaja baris dimasukkan, tiada cara untuk mendayakan semula kekangan semak kerana baris itu akan disemak semula apabila kekangan didayakan.
Anda kemudiannya boleh memadam atau mengemas kini baris yang melanggar kekangan semak dan mendayakan semula kekangan tersebut.
Jika perlu boleh bertanya
credits
列插入零值,那么check (credits > 0)
似乎不是正确的选择那个专栏。也许需要检查(学分> = 0)
.