以下是我的表结构,我想验证price_list_rate字段,值应该大于零,我尝试了无符号
Version information: 4.5.4.1deb2ubuntu2.1
CREATE TABLE `price_list` (
`price_list_id` int(11) NOT NULL,
`price_list_city_id` int(11) NOT NULL,
`price_list_process_id` int(11) NOT NULL,
`price_list_product_id` int(11) NOT NULL,
`price_list_rate` float UNSIGNED NOT NULL,
`price_list_vendor_rate` int(11) NOT NULL,
`created_by` int(10) UNSIGNED NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_by` int(10) UNSIGNED NOT NULL,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
你需要check约束:
ALTER TABLE `price_list`
ADD CONSTRAINT chk_price CHECK (`price_list_rate` > 0);
Run Code Online (Sandbox Code Playgroud)
注意:CHECK约束从 MySQL 开始可用,8.0.16对于旧版本,您需要触发器来防止0插入价格。
| 归档时间: |
|
| 查看次数: |
5398 次 |
| 最近记录: |