Setting CHECK Constraints : Constraint : Table Index SQL / MySQL


SQL / MySQL » Table Index » Constraint »

 

Setting CHECK Constraints



/*
mysql> Drop TABLE Employee;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE Employee (
    ->    Name    VARCHAR(50) PRIMARY KEY NOT NULL,
    ->    PhoneNo VARCHAR(15) DEFAULT 'Unknown Phone',
    ->    SSN     VARCHAR(15) NOT NULL,
    ->    CHECK (SSN LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'));
Query OK, 0 rows affected (0.07 sec)

mysql> Describe Employee;
+---------+-------------+------+-----+---------------+-------+
| Field   | Type        | Null | Key | Default       | Extra |
+---------+-------------+------+-----+---------------+-------+
| Name    | varchar(50) |      | PRI |               |       |
| PhoneNo | varchar(15) | YES  |     | Unknown Phone |       |
| SSN     | varchar(15) |      |     |               |       |
+---------+-------------+------+-----+---------------+-------+
3 rows in set (0.01 sec)

mysql> INSERT INTO Employee (Name, Phone, SSN) VALUES ('Joe Yin', '666 2323', 22
2-22-2222);
ERROR 1054 (42S22): Unknown column 'Phone' in 'field list'
mysql> INSERT INTO Employee (Name, SSN) VALUES ('John Doe', 22-a2-2222);
ERROR 1054 (42S22): Unknown column 'a2' in 'field list'
mysql> INSERT INTO Employee (Name, Phone) VALUES ('Joe Yin', NULL);
ERROR 1054 (42S22): Unknown column 'Phone' in 'field list'
mysql> Select * from Employee;
Empty set (0.00 sec)


*/
Drop TABLE Employee;


CREATE TABLE Employee (
   Name    VARCHAR(50PRIMARY KEY NOT NULL, 
   PhoneNo VARCHAR(15DEFAULT 'Unknown Phone',
   SSN     VARCHAR(15NOT NULL,
   CHECK (SSN LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'));

Describe Employee;

INSERT INTO Employee (Name, Phone, SSNVALUES ('Joe Yin', '666 2323', 222-22-2222);
INSERT INTO Employee (Name, SSNVALUES ('John Doe', 22-a2-2222);
INSERT INTO Employee (Name, PhoneVALUES ('Joe Yin', NULL);

Select * from Employee;


           
       



Leave a Comment / Note


 
Verification is used to prevent unwanted posts (spam). .

Follow Navioo On Twitter

SQL / MySQL

 Navioo Table Index
» Constraint