简体   繁体   English

使用CHECK在现有表上添加约束

[英]Adding constraint on an existing table with CHECK

Can anyone have a look at my SQL statement and tell me what is wrong with it. 谁能看看我的SQL语句并告诉我它有什么问题。 I keep getting error when I tried to add a new constraint on an existing table. 尝试在现有表上添加新约束时,我总是收到错误消息。

Error report:
SQL Error: ORA-01735: invalid ALTER TABLE option
01735. 00000 -  "invalid ALTER TABLE option"
*Cause:    
*Action:

You need parentheses around the entire condition for check : 您需要在整个条件周围加上括号以进行check

alter table seat 
    add constraint check_seats
        CHECK ((BLOCKNO = 'FRONT' AND ROWNO NOT LIKE '%[^A-J]%'  AND SEATNO <=40) OR 
               (BLOCKNO = 'MIDDLE' AND ROWNO NOT LIKE '%[^A-L]%' AND SEATNO <=50) OR
               (BLOCKNO = 'BACK' AND ROWNO NOT LIKE '%[^A-N]%' AND SEATNO <=60)
              );

Add one more parenthesis for the check constraint. 为检查约束再添加一个括号。

     CHECK ((BLOCKNO = 'FRONT' AND ROWNO NOT LIKE '%[^A-J]%'  AND SEATNO <=40) OR 
            (BLOCKNO = 'MIDDLE' AND ROWNO NOT LIKE '%[^A-L]%' AND SEATNO <=50) OR
            (BLOCKNO = 'BACK' AND ROWNO NOT LIKE '%[^A-N]%' AND SEATNO <=60)
           );

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM