Alter table to add the foreign key : Alter Table « Table « MySQL Tutorial






mysql>
mysql>
mysql>
mysql> CREATE TABLE Publishers
    -> (
    ->    PubID SMALLINT NOT NULL DEFAULT 1
    -> )
    -> ENGINE=INNODB;
Query OK, 0 rows affected (0.05 sec)

mysql>
mysql>
mysql> CREATE TABLE Books
    -> (
    ->    BookID SMALLINT NOT NULL,
    ->    BookName VARCHAR(40) NOT NULL,
    ->    PubID SMALLINT NOT NULL DEFAULT 1
    -> )
    -> ENGINE=INNODB;
Query OK, 0 rows affected (0.05 sec)

mysql>
mysql>
mysql> ALTER TABLE Books
    -> ADD PRIMARY KEY (BookID),
    -> ADD CONSTRAINT fk_1 FOREIGN KEY (PubID) REFERENCES Publishers (PubID),
    -> ADD COLUMN Format ENUM('paperback', 'hardcover') NOT NULL AFTER BookName;
mysql>
mysql> desc Books;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| BookID   | smallint(6) | NO   |     |         |       |
| BookName | varchar(40) | NO   |     |         |       |
| PubID    | smallint(6) | NO   |     | 1       |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql>
mysql> desc Publishers;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| PubID | smallint(6) | NO   |     | 1       |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.02 sec)

mysql>
mysql> drop table Books;
Query OK, 0 rows affected (0.02 sec)

mysql>
mysql> drop table Publishers;
Query OK, 0 rows affected (0.05 sec)

mysql>








4.3.Alter Table
4.3.1.ALTER [IGNORE] TABLE table_name specification [,specification]
4.3.2.Add primary key to a table by using the alter table command
4.3.3.Drop table column with alter table command
4.3.4.Alter table to add the foreign key
4.3.5.Drop primary key from a table using the alter table command
4.3.6.MODIFYing a TABLE