為什麼我的MySQL預設值設定沒有生效?
P粉752479467
2023-08-31 15:07:35
<p>我的MOVIE_RATING的預設值似乎不起作用。有人可以告訴我查詢有什麼問題或幫我修復它嗎?非常感謝。 </p>
<pre class="brush:php;toolbar:false;">建立表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)
);</pre></p>
@Zolan Noir,當值為'NR'時,你沒有檢查Move Rating。所以,如果你想使用預設值,當然會觸發錯誤,因為你已經定義了對電影評分欄位的約束CHECK,但是在檢查時沒有'NR'值。
NB:CHECK將建立一個約束,但是在你的CHECK約束中沒有檢查字段Movie Rating上的值"NR"。除非你不在電影評分上加上CHECK,否則你寫的程式碼都是正確的。
哦,最後一件事,請移除電影ID上的not null和UNIQUE約束,因為你將該欄位定義為主鍵。這沒有用處,因為主鍵將建立索引約束,具有與唯一性和非空性相似的特性。