Check restriction for mysql

Check restriction for mysql

Mysql does not suppot for check restriction but oracle does. Here using trigger we can achive the same restrction as check does.

Scenario:

Here is a IDcard field in table student with a restriction that the length of IDCrad must less than 18.

4 parameters we can use:

  1. trigger-name: credit_tri
  2. target-table:student
  3. target-field:IDCard
  4. error-msg:"length is above 18,cannot insert"
mysql> delimiter $
mysql> create trigger credit_tri before insert
    -> on student for each row
    -> begin
    ->     declare msg varchar(200);
    ->     if (new.IDCard > 18) then
    ->         set msg = "length is above 18. Cannot insert.";
    ->             signal sqlstate ‘HY000‘ SET message_text = msg;
    ->     end if;
    -> end $
时间: 2024-10-01 02:49:08

Check restriction for mysql的相关文章

MySQL关于check约束无效的解决办法

首先看下面这段MySQL的操作,我新建了一个含有a和b的表,其中a用check约束必须大于0,然而我插入了一条(-2,1,1)的数据,其中a=-2,也是成功插入的. 所以MySQL只是check,但是不强制check. 1 mysql> create table checkDemoTable(a int,b int,id int,primary key(id)); 2 Query OK, 0 rows affected 3 4 mysql> alter table checkDemoTable

Setting up Nutch 2.1 with MySQL to handle UTF-8

原文地址: http://nlp.solutions.asia/?p=180 These instructions assume Ubuntu 12.04 and Java 6 or 7 installed and JAVA_HOME configured. Install MySQL Server and MySQL Client using the Ubuntu software center or sudo apt-get install mysql-server mysql-client

mySQL基础

一.数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合.(文件系统) 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立.使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性.用户通过数据库管理系统访问数据库中的数据. 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的. 数据库:存储.维护和管理数

mysql系列命令解释

mysqld - the MySQL server mysql - the MySQL command-line tool mysqlaccess - client for checking access privileges mysqladmin - client for administering a MySQL server mysqlbinlog - utility for processing binary log files mysqlbug - generate bug repor

day15(mysql之零碎知识)

数据完整性 实体完整性 实体: 表中一行(一行记录)代替一个实体 实体完整性的作用: 标识每一行数据不重复. 约束类型: 主键约束, 唯一约束,自动增长列. 主键约束: 标识该列唯一,非空. 注:  每个表中必须要有一个主键 添加主键的三中方式: 1.在创建表的过程中直接创建. CREATE TABLE student( id int primary key, name varchar(50) ); 2.  在创建表中的特殊创建方式:  优点在于  可以联合创建主键 CREATE TABLE s

MySQL常见建表选项及约束

一.CREATE TABLE 选项 1.在定义列的时候,指定列选项 1)DEFAULT <literal>:定义列的默认值 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 :如果没有,则为null. mysql> create table people                                                                      -> (    ->  id int not nu

脚步监控mysql主从是否正常

Mysql主从配置详见:http://chinawu.blog.51cto.com/10692884/1739327 主从正常状态是slave上的状态值:Slave_IO_Running:YES和Slave_SQL_Running:YES,当出现一个NO,表明mysql主从已破坏,但是,运维人员不可能随时进入mysql的slave上的状态值.所以需要一个脚步在规定时间内检测是否关系正常. 脚步大致内容: #!/bin/bash #Check MySQL_Slave Status #MySQL v

Solve: Your project references the latest version of Entity Framework (for MySQL) in Visual Studio 2013

The error message while trying to create a ADO.net Entity Data Model ( Entity Framework 6 ) for MySql Database in Microsoft Visual Studio 2013 "Your project references the latest version of Entity Framework; however, an Entity Framework database prov

mysql 维护常用命令

Analyze Table MySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了. 我们可以使用SHOW INDEX语句来查看索引的散列程度: SHOW INDEX FROM PLAYERS; TABLE KEY_NAME COLUMN_NAME CARDINALITY ----