mysql - 为什么我的默认值在 MySQL 中不起作用
问题描述
我的 MOVIE_RATING 的默认值似乎不起作用。有人可以告诉我我的查询有什么问题或帮助我解决它。非常感谢。
Create table 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”时,您不会检查移动评级。因此,如果您想使用默认值当然会触发错误,因为您已经为电影评级字段定义了一个约束 CHECK,但是当检查它时,CHECK 约束上没有“NR”值。
注意:CHECK 将在您的 CHECK 约束上建立一个约束,没有检查字段电影评级上的值“NR”。除了你没有在电影评级上添加检查,你写的代码就可以了。
哦,最后一件事请删除电影 id 上的 not null 和 UNIQUE 约束,因为您将该字段定义为主键。没有用,因为主键将构建一个索引约束,其特征类似于唯一且不为空。
推荐阅读
- for-loop - 如何将 Raster 乘以 R 中的 CSV 值以获得 rasterstack?
- python-dedupe - 重用 Dedupe 训练进行地名词典匹配
- php - 对 php 的 textarea 注释
- vba - 在 MS Access VBA 中获取处理器核心数
- sql - SQL查询:每次特定参数获取特定值时如何选择所有以下行
- keda - Keda RabbitMQ - 当队列中的消息很少时,Keda 不会产生额外的作业
- django - Django Rest Framework 在 django MTV 架构的哪个级别上工作?
- python - 将列表(点)的熊猫数据框列表分解为具有点对的数据框
- aws-api-gateway - AWS Route53 | 来自其他 DNS 提供商的别名记录
- typescript - 如何在 TypeScript 中在运行时添加函数体