MySQL约束语法

外键的使用:

语法:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)

    REFERENCES tbl_name (index_col_name, ...)

    [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

    [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

已有表的基础上修改:
     ALTER TABLE check_out  ADD FOREIGN KEY rid (reader_id)  REFERENCES areader(id)

Check检查的使用:
语法:
Constraint check_name check(谓词)
已有表的基础上修改:ALTER TABLE Persons  ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
删除已有的约束:ALTER TABLE Persons DROP CHECK chk_Person

触发器的使用:

示例:

DELIMITER //
CREATE
    TRIGGER sell_out 
    AFTER UPDATE/INSERT ON product
    FOR EACH ROW  --不加这句则更新n条数据只触发一次
    BEGIN
    IF(new.num<1)
    THEN SET new.state=0 
    END IF
    END//
DELIMITER ;

Trigger顺序:
  1. 把执行后的值赋给new
  2. 执行before类trigger
  3. 执行完before后,将new赋给结果,更新表
  4. 执行after类trigger
从上面我们可以看出,after类触发器对new行的set操作是没有用的,因此这样的语法也不被认可,不能通过。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值