Pourquoi mes paramètres MySQL par défaut ne prennent-ils pas effet ?
P粉752479467
2023-08-31 15:07:35
<p>Ma valeur par défaut pour MOVIE_RATING ne semble pas fonctionner. Quelqu'un peut-il me dire quel est le problème avec la requête ou m'aider à la résoudre ? Merci beaucoup. </p>
<pre class="brush:php;toolbar:false;">Créer un tableau FILM
(
MOVIE_ID int(7) NON NULL UNIQUE,
MOVIE_NAME Varchar(20),
Date MOVIE_RELEASE_DATE,
MOVIE_RATING Varchar(5) PAR DÉFAUT 'NR',
VÉRIFIER (MOVIE_RATING = 'G'OR MOVIE_RATING = 'PG' OU MOVIE_RATING =
'PG-13' OU MOVIE_RATING =
'R' OU MOVIE_RATING = 'NC'),
clé primaire (MOVIE_ID)
);</pre></p>
@Zolan Noir, vous n'avez pas vérifié le Move Rating lorsque la valeur est 'NR'. Donc, si vous souhaitez utiliser la valeur par défaut, bien sûr l'erreur sera déclenchée car vous avez défini la contrainte CHECK sur le champ de classification du film, mais il n'y a pas de valeur 'NR' lors de la vérification.
NB : CHECK établira une contrainte, mais il n'y a pas de vérification de la valeur "NR" sur le champ Movie Rating dans votre contrainte CHECK. À moins que vous n'ajoutiez pas de CHECK aux classements des films, le code que vous avez écrit est correct.
Oh, une dernière chose, veuillez supprimer les contraintes non nulles et UNIQUE sur l'ID du film, puisque vous avez défini ce champ comme clé primaire. Cela n'est pas utile car la clé primaire établira une contrainte d'index, avec des propriétés similaires à l'unicité et à la non-nullabilité.