Mega Code Archive

 
Categories / MySQL / Table Index
 

Altering Database Tables

/* mysql> CREATE TABLE Employee (     ->    Name    VARCHAR(50) PRIMARY KEY NOT NULL,     ->    PhoneNo VARCHAR(15) DEFAULT 'Unknown Phone',     ->    Age     INT CHECK (Age BETWEEN 20 and 30)); Query OK, 0 rows affected (0.04 sec) mysql> Describe Employee; +---------+-------------+------+-----+---------------+-------+ | Field   | Type        | Null | Key | Default       | Extra | +---------+-------------+------+-----+---------------+-------+ | Name    | varchar(50) |      | PRI |               |       | | PhoneNo | varchar(15) | YES  |     | Unknown Phone |       | | Age     | int(11)     | YES  |     | NULL          |       | +---------+-------------+------+-----+---------------+-------+ 3 rows in set (0.01 sec) mysql> Select * from Employee; +----------+---------------+------+ | Name     | PhoneNo       | Age  | +----------+---------------+------+ | John Doe | Unknown Phone |   31 | +----------+---------------+------+ 1 row in set (0.00 sec) mysql> ALTER TABLE Employee DROP INDEX Name; ERROR 1091 (42000): Can't DROP 'Name'; check that column/key exists mysql> ALTER TABLE Employee ADD PRIMARY KEY (Name); ERROR 1068 (42000): Multiple primary key defined mysql> Describe Employee; +---------+-------------+------+-----+---------------+-------+ | Field   | Type        | Null | Key | Default       | Extra | +---------+-------------+------+-----+---------------+-------+ | Name    | varchar(50) |      | PRI |               |       | | PhoneNo | varchar(15) | YES  |     | Unknown Phone |       | | Age     | int(11)     | YES  |     | NULL          |       | +---------+-------------+------+-----+---------------+-------+ 3 rows in set (0.00 sec) */ Drop TABLE Employee;         CREATE TABLE Employee (    Name    VARCHAR(50) PRIMARY KEY NOT NULL,     PhoneNo VARCHAR(15) DEFAULT 'Unknown Phone',    Age     INT CHECK (Age BETWEEN 20 and 30)); Describe Employee; INSERT INTO Employee (Name, Phone, Age) VALUES ('Joe Wang', '666 2323', 26); INSERT INTO Employee (Name, Age) VALUES ('John Doe', 31); Select * from Employee;       ALTER TABLE Employee DROP INDEX Name; ALTER TABLE Employee ADD PRIMARY KEY (Name); Describe Employee;