搜尋

首頁  >  問答  >  主體

為什麼我的MySQL預設值設定沒有生效?

<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>
P粉752479467P粉752479467480 天前633

全部回覆(1)我來回復

  • P粉727531237

    P粉7275312372023-09-01 11:53:25

    @Zolan Noir,當值為'NR'時,你沒有檢查Move Rating。所以,如果你想使用預設值,當然會觸發錯誤,因為你已經定義了對電影評分欄位的約束CHECK,但是在檢查時沒有'NR'值。

    NB:CHECK將建立一個約束,但是在你的CHECK約束中沒有檢查字段Movie Rating上的值"NR"。除非你不在電影評分上加上CHECK,否則你寫的程式碼都是正確的。

    哦,最後一件事,請移除電影ID上的not null和UNIQUE約束,因為你將該欄位定義為主鍵。這沒有用處,因為主鍵將建立索引約束,具有與唯一性和非空性相似的特性。

    回覆
    0
  • 取消回覆