我想添加一个检查约束,检查字段是否具有最大数量的X空格"".我在oracle网站上找不到任何关于它的信息.有谁知道这是否可能?也许通过PL/SQL函数?
因此,我需要一个约束来阻止用户输入该季度的第一天和该季度的最后一天之外的日期/月份,以及该表格将被"锁定"以进行编辑的日期.我做了一些在线搜索,并认为我找到了答案,但当我尝试它时,我收到了一个错误.
alter table TABLE_NAME
add constraint data_beg_dt_chk check
(trunc(data_beg_dt, 'DD-MON') = (trunc(to_date('01-JAN', 'DD-MON'))||(trunc(sysdate, 'YYYY')))
OR trunc(data_beg_dt, 'DD-MON') = (trunc(to_date('01-APR', 'DD-MON'))||(trunc(sysdate, 'YYYY')))
OR trunc(data_beg_dt, 'DD-MON') = (trunc(to_date('01-JUL', 'DD-MON'))||(trunc(sysdate, 'YYYY')))
OR trunc(data_beg_dt, 'DD-MON') = (trunc(to_date('01-OCT', 'DD-MON'))||(trunc(sysdate, 'YYYY'))));
Run Code Online (Sandbox Code Playgroud)
我收到错误:
SQL Error: ORA-02436: date or system variable wrongly specified in CHECK constraint
02436. 00000 - "date or system variable wrongly specified in CHECK constraint"
*Cause: An attempt was made to use a date constant or system variable,
such as USER, in a check constraint …Run Code Online (Sandbox Code Playgroud) 我正在使用SQL Server.我有这张桌子:
CREATE TABLE Student
(
ID int PRIMARY KEY,
FirstName varchar(100),
LastName varchar(100),
Active bit;
)
Run Code Online (Sandbox Code Playgroud)
我希望只有Active = 1才能拥有唯一(FirstName,LastName)学生.如果它们处于非活动状态,则不应触发唯一约束.任何的想法?
sql sql-server constraints check-constraints unique-constraint
我有一个与 T-SQL 中的数据库触发器相关的问题。
我想创建一个只允许特定词(可用,不可用)列的触发器avalability。
怎么做?
我明白触发器是什么,但在命令序列中迷失了 - 什么应该在什么之后。
我的 PostgreSQL 表中有一个列用于类型为 的电话号码VARCHAR。我选择此数据类型是因为在我的国家/地区电话号码以 0 开头。
我需要引入一个约束来检查电话号码是否仅包含数字。
\n这是我到目前为止所拥有的:
\nALTER TABLE contactInfo ADD CONSTRAINT checkPhone\nCHECK(phone NOT SIMILAR TO '%[a-z]%' AND phone SIMILAR TO '%[0-9]%');\nRun Code Online (Sandbox Code Playgroud)\n它似乎有效,但恐怕它不会过滤掉特定于不同语言的字符(例如 \xc3\xb9 \xc3\xbb \xc3\xbc \xc3\xa2 \xc3\xa0 等)。
\n我该怎么做 ?
\n模式
\n create table course\n (course_id varchar(8), \n title varchar(50), \n dept_name varchar(20),\n credits numeric(2,0) check (credits > 0),\n primary key (course_id),\n foreign key (dept_name) references department (dept_name)\n on delete set null\n );\nRun Code Online (Sandbox Code Playgroud)\n我想将此数据添加到表中,但无法添加 0 学分。
\n\n\n\xe2\x80\x9cCS-001\xe2\x80\x9d,标题为\xe2\x80\x9c每周研讨会\xe2\x80\x9d,0学分
\n
插入查询
\nINSERT INTO `course`(`course_id`, `title`, `credits`) VALUES (\'CS-001\',\'Weekly Seminar\',\'0\');\nRun Code Online (Sandbox Code Playgroud)\n\n有没有其他方法可以在不改变表结构的情况下插入相同的数据?
\n我想创建一个查询来验证一列,以便它只允许三种不同的条目类型,即名为“问候”的表的“hello”、“hi”或“hey”,并防止输入任何其他文本。如果此方法不可行,是否有办法使其在输入任何其他文本(如“good day”)时变为“错误”
sql ×4
sql-server ×3
constraints ×2
oracle ×2
t-sql ×2
mysql ×1
oracle11g ×1
postgresql ×1
regex ×1
string ×1
validation ×1
varchar ×1