【发布时间】:2016-12-23 09:48:14
【问题描述】:
CREATE table orders (
custNum INT NOT NULL CHECK(custNum >= 0 AND custNum <= 999999),
prodNum INT FOREIGN KEY REFERENCES product(prodNum),
date DATE NOT NULL DATE_FORMAT(date, '%d-%m-%Y') CHECK(date >= '01-01-1993'),
qty INT CHECK(qty >= 0 AND qty <= 100000),
PRIMARY KEY (custNum, prodNum, date)
);
如你所见,我的
date DATE NOT NULL DATE_FORMAT(date, '%d-%m-%Y') CHECK(date >= '01-01-1993'),
我要做的是确保当我输入记录时,它会检查格式为DD-MM-YYYY 并且晚于日期01-01-1993。但是,我发现所有日期格式主要适用于 SELECT 语句,这是我不想要的。我希望日期列中的记录采用我指定的确切格式。你是怎么做到的?
谢谢你,我很感激任何帮助。我正在学习 SQL 和约束。我是初学者,所以我希望尽可能简单(最好是我的单行语句的解决方案),以便我更好地理解。
编辑:嗨,我实际上计划在 mySQL/MariaDB 上执行此操作,但存在 CHECK 约束错误(?)所以我实际上使用的是 Microsoft SQL Management Studio。如果它可以在 Microsoft SQL Management Studio 上运行,我将不胜感激。
【问题讨论】:
-
sql server 还是 mysql?
-
嗨,我实际上计划在 mySQL 上执行此操作,但有一个 CHECK 错误(?)它不起作用,所以我实际上使用的是 Microsoft SQL Management Studio。如果它可以在 Microsoft SQL Management Studio 上运行,我将不胜感激。
-
您是在使用 Management Studio 作为客户端吗?
-
@e4c5 嗨,实际上我正在学习 SQL,我不太确定技术性,但我下载了 Microsoft SQL Mgmt Studio,创建了自己的数据库,现在尝试在上面创建自己的表。我想创建这个表和更多表,然后插入我自己的数据,然后尝试练习..所以我不确定它是什么..我非常抱歉。
-
首先要做的就是弄清楚你实际连接的是什么RDBMS,因为这个si not valid mysql
标签: sql-server date