我的MOVIE_RATING的預設值似乎不起作用。有人可以告訴我查詢有什麼問題或幫我修復它嗎?非常感謝。
建立表MOVIE ( MOVIE_ID int(7) NOT NULL UNIQUE, MOVIE_NAME Varchar(20), MOVIE_RELEASE_DATE date, MOVIE_RATING Varchar(5) DEFAULT 'NR', CHECK (MOVIE_RATING = 'G'OR MOVIE_RATING = 'PG' OR MOVIE_RATING = 'PG-13' OR MOVIE_RATING = 'R' OR MOVIE_RATING = 'NC'), primary key (MOVIE_ID) );
@Zolan Noir,當值為'NR'時,你沒有檢查Move Rating。所以,如果你想使用預設值,當然會觸發錯誤,因為你已經定義了對電影評分欄位的約束CHECK,但是在檢查時沒有'NR'值。
NB:CHECK將建立一個約束,但是在你的CHECK約束中沒有檢查字段Movie Rating上的值"NR"。除非你不在電影評分上加上CHECK,否則你寫的程式碼都是正確的。
哦,最後一件事,請移除電影ID上的not null和UNIQUE約束,因為你將該欄位定義為主鍵。這沒有用處,因為主鍵將建立索引約束,具有與唯一性和非空性相似的特性。