<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=MySQL_Tutorial%2FTable%2FForeign_Keys</id>
		<title>MySQL Tutorial/Table/Foreign Keys - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=MySQL_Tutorial%2FTable%2FForeign_Keys"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=MySQL_Tutorial/Table/Foreign_Keys&amp;action=history"/>
		<updated>2026-05-24T05:20:18Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=MySQL_Tutorial/Table/Foreign_Keys&amp;diff=49&amp;oldid=prev</id>
		<title> в 13:44, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=MySQL_Tutorial/Table/Foreign_Keys&amp;diff=49&amp;oldid=prev"/>
				<updated>2010-05-26T13:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:44, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=MySQL_Tutorial/Table/Foreign_Keys&amp;diff=50&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=MySQL_Tutorial/Table/Foreign_Keys&amp;diff=50&amp;oldid=prev"/>
				<updated>2010-05-26T09:49:10Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Add Index and primary key to a table in table creation command==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE myTable&lt;br /&gt;
    -&amp;gt; (&lt;br /&gt;
    -&amp;gt;    OrderID SMALLINT UNSIGNED NOT NULL,&lt;br /&gt;
    -&amp;gt;    ModelID SMALLINT UNSIGNED NOT NULL,&lt;br /&gt;
    -&amp;gt;    PRIMARY KEY (OrderID),&lt;br /&gt;
    -&amp;gt;    INDEX (ModelID)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc myTable;&lt;br /&gt;
+---------+----------------------+------+-----+---------+-------+&lt;br /&gt;
| Field   | Type                 | Null | Key | Default | Extra |&lt;br /&gt;
+---------+----------------------+------+-----+---------+-------+&lt;br /&gt;
| OrderID | smallint(5) unsigned | NO   | PRI |         |       |&lt;br /&gt;
| ModelID | smallint(5) unsigned | NO   | MUL |         |       |&lt;br /&gt;
+---------+----------------------+------+-----+---------+-------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table myTable;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Alter table to drop primary key and foreign key==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Publishers&lt;br /&gt;
    -&amp;gt; (&lt;br /&gt;
    -&amp;gt;    PubID SMALLINT NOT NULL DEFAULT 1&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.08 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Books&lt;br /&gt;
    -&amp;gt; (&lt;br /&gt;
    -&amp;gt;    BookID SMALLINT NOT NULL,&lt;br /&gt;
    -&amp;gt;    BookName VARCHAR(40) NOT NULL,&lt;br /&gt;
    -&amp;gt;    PubID SMALLINT NOT NULL DEFAULT 1&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.06 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; ALTER TABLE Books&lt;br /&gt;
    -&amp;gt; ADD PRIMARY KEY (BookID),&lt;br /&gt;
    -&amp;gt; ADD CONSTRAINT fk_1 FOREIGN KEY (PubID) REFERENCES Publishers (PubID),&lt;br /&gt;
    -&amp;gt; ADD COLUMN Format ENUM(&amp;quot;paperback&amp;quot;, &amp;quot;hardcover&amp;quot;) NOT NULL AFTER BookName;&lt;br /&gt;
ERROR 1005 (HY000): Can&amp;quot;t create table &amp;quot;.\test\#sql-a98_3a.frm&amp;quot; (errno: 150)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc Books;&lt;br /&gt;
+----------+-------------+------+-----+---------+-------+&lt;br /&gt;
| Field    | Type        | Null | Key | Default | Extra |&lt;br /&gt;
+----------+-------------+------+-----+---------+-------+&lt;br /&gt;
| BookID   | smallint(6) | NO   |     |         |       |&lt;br /&gt;
| BookName | varchar(40) | NO   |     |         |       |&lt;br /&gt;
| PubID    | smallint(6) | NO   |     | 1       |       |&lt;br /&gt;
+----------+-------------+------+-----+---------+-------+&lt;br /&gt;
3 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc Publishers;&lt;br /&gt;
+-------+-------------+------+-----+---------+-------+&lt;br /&gt;
| Field | Type        | Null | Key | Default | Extra |&lt;br /&gt;
+-------+-------------+------+-----+---------+-------+&lt;br /&gt;
| PubID | smallint(6) | NO   |     | 1       |       |&lt;br /&gt;
+-------+-------------+------+-----+---------+-------+&lt;br /&gt;
1 row in set (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; ALTER TABLE Books&lt;br /&gt;
    -&amp;gt; DROP PRIMARY KEY,&lt;br /&gt;
    -&amp;gt; DROP FOREIGN KEY fk_1,&lt;br /&gt;
    -&amp;gt; DROP COLUMN Format;&lt;br /&gt;
ERROR 1091 (42000): Can&amp;quot;t DROP &amp;quot;PRIMARY&amp;quot;; check that column/key exists&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc Books;&lt;br /&gt;
+----------+-------------+------+-----+---------+-------+&lt;br /&gt;
| Field    | Type        | Null | Key | Default | Extra |&lt;br /&gt;
+----------+-------------+------+-----+---------+-------+&lt;br /&gt;
| BookID   | smallint(6) | NO   |     |         |       |&lt;br /&gt;
| BookName | varchar(40) | NO   |     |         |       |&lt;br /&gt;
| PubID    | smallint(6) | NO   |     | 1       |       |&lt;br /&gt;
+----------+-------------+------+-----+---------+-------+&lt;br /&gt;
3 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc Publishers;&lt;br /&gt;
+-------+-------------+------+-----+---------+-------+&lt;br /&gt;
| Field | Type        | Null | Key | Default | Extra |&lt;br /&gt;
+-------+-------------+------+-----+---------+-------+&lt;br /&gt;
| PubID | smallint(6) | NO   |     | 1       |       |&lt;br /&gt;
+-------+-------------+------+-----+---------+-------+&lt;br /&gt;
1 row in set (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Books;&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Publishers;&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== FOREIGN KEY ON DELETE CASCADE ON UPDATE CASCADE==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Models&lt;br /&gt;
    -&amp;gt; (&lt;br /&gt;
    -&amp;gt;    ModelID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,&lt;br /&gt;
    -&amp;gt;    Name VARCHAR(40) NOT NULL,&lt;br /&gt;
    -&amp;gt;    PRIMARY KEY (ModelID)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Orders&lt;br /&gt;
    -&amp;gt; (&lt;br /&gt;
    -&amp;gt;    ID          SMALLINT UNSIGNED NOT NULL PRIMARY KEY,&lt;br /&gt;
    -&amp;gt;    ModelID     SMALLINT UNSIGNED NOT NULL,&lt;br /&gt;
    -&amp;gt;    Description VARCHAR(40),&lt;br /&gt;
    -&amp;gt;    FOREIGN KEY (ModelID) REFERENCES Models (ModelID)&lt;br /&gt;
    -&amp;gt;       ON DELETE CASCADE ON UPDATE CASCADE&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc Models;&lt;br /&gt;
+---------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
| Field   | Type                 | Null | Key | Default | Extra          |&lt;br /&gt;
+---------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
| ModelID | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |&lt;br /&gt;
| Name    | varchar(40)          | NO   |     |         |                |&lt;br /&gt;
+---------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc Orders;&lt;br /&gt;
+-------------+----------------------+------+-----+---------+-------+&lt;br /&gt;
| Field       | Type                 | Null | Key | Default | Extra |&lt;br /&gt;
+-------------+----------------------+------+-----+---------+-------+&lt;br /&gt;
| ID          | smallint(5) unsigned | NO   | PRI |         |       |&lt;br /&gt;
| ModelID     | smallint(5) unsigned | NO   | MUL |         |       |&lt;br /&gt;
| Description | varchar(40)          | YES  |     | NULL    |       |&lt;br /&gt;
+-------------+----------------------+------+-----+---------+-------+&lt;br /&gt;
3 rows in set (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Orders;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Models;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Implement a many-to-many map==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Books(&lt;br /&gt;
    -&amp;gt;    BookID SMALLINT NOT NULL PRIMARY KEY,&lt;br /&gt;
    -&amp;gt;    BookTitle VARCHAR(60) NOT NULL,&lt;br /&gt;
    -&amp;gt;    Copyright YEAR NOT NULL&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO Books VALUES (12786, &amp;quot;Java&amp;quot;,           1934),&lt;br /&gt;
    -&amp;gt;                          (13331, &amp;quot;MySQL&amp;quot;,          1919),&lt;br /&gt;
    -&amp;gt;                          (14356, &amp;quot;PHP&amp;quot;,            1966),&lt;br /&gt;
    -&amp;gt;                          (15729, &amp;quot;PERL&amp;quot;,           1932),&lt;br /&gt;
    -&amp;gt;                          (16284, &amp;quot;Oracle&amp;quot;,         1996),&lt;br /&gt;
    -&amp;gt;                          (17695, &amp;quot;Pl/SQL&amp;quot;,         1980),&lt;br /&gt;
    -&amp;gt;                          (19264, &amp;quot;JavaScript&amp;quot;,     1992),&lt;br /&gt;
    -&amp;gt;                          (19354, &amp;quot;www.sqle.ru&amp;quot;, 1993);&lt;br /&gt;
Query OK, 8 rows affected (0.05 sec)&lt;br /&gt;
Records: 8  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Authors(&lt;br /&gt;
    -&amp;gt;    AuthID SMALLINT NOT NULL PRIMARY KEY,&lt;br /&gt;
    -&amp;gt;    AuthFN VARCHAR(20),&lt;br /&gt;
    -&amp;gt;    AuthMN VARCHAR(20),&lt;br /&gt;
    -&amp;gt;    AuthLN VARCHAR(20)&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO Authors VALUES (1006, &amp;quot;H&amp;quot;, &amp;quot;S.&amp;quot;, &amp;quot;T&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1007, &amp;quot;J&amp;quot;, &amp;quot;C&amp;quot;,  &amp;quot;O&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1008, &amp;quot;B&amp;quot;, NULL, &amp;quot;E&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1009, &amp;quot;R&amp;quot;, &amp;quot;M&amp;quot;,  &amp;quot;R&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1010, &amp;quot;J&amp;quot;, &amp;quot;K&amp;quot;,  &amp;quot;T&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1011, &amp;quot;J&amp;quot;, &amp;quot;G.&amp;quot;, &amp;quot;N&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1012, &amp;quot;A&amp;quot;, NULL, &amp;quot;P&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1013, &amp;quot;A&amp;quot;, NULL, &amp;quot;W&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1014, &amp;quot;N&amp;quot;, NULL, &amp;quot;A&amp;quot;);&lt;br /&gt;
Query OK, 9 rows affected (0.02 sec)&lt;br /&gt;
Records: 9  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE AuthorBook(&lt;br /&gt;
    -&amp;gt;    AuthID SMALLINT NOT NULL,&lt;br /&gt;
    -&amp;gt;    BookID SMALLINT NOT NULL,&lt;br /&gt;
    -&amp;gt;    PRIMARY KEY (AuthID, BookID),&lt;br /&gt;
    -&amp;gt;    FOREIGN KEY (AuthID) REFERENCES Authors (AuthID),&lt;br /&gt;
    -&amp;gt;    FOREIGN KEY (BookID) REFERENCES Books (BookID)&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO AuthorBook VALUES (1006, 14356),&lt;br /&gt;
    -&amp;gt;                               (1008, 15729),&lt;br /&gt;
    -&amp;gt;                               (1009, 12786),&lt;br /&gt;
    -&amp;gt;                               (1010, 17695),&lt;br /&gt;
    -&amp;gt;                               (1011, 15729),&lt;br /&gt;
    -&amp;gt;                               (1012, 19264),&lt;br /&gt;
    -&amp;gt;                               (1012, 19354),&lt;br /&gt;
    -&amp;gt;                               (1014, 16284);&lt;br /&gt;
Query OK, 8 rows affected (0.03 sec)&lt;br /&gt;
Records: 8  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Authors;&lt;br /&gt;
+--------+--------+--------+--------+&lt;br /&gt;
| AuthID | AuthFN | AuthMN | AuthLN |&lt;br /&gt;
+--------+--------+--------+--------+&lt;br /&gt;
|   1006 | H      | S.     | T      |&lt;br /&gt;
|   1007 | J      | C      | O      |&lt;br /&gt;
|   1008 | B      | NULL   | E      |&lt;br /&gt;
|   1009 | R      | M      | R      |&lt;br /&gt;
|   1010 | J      | K      | T      |&lt;br /&gt;
|   1011 | J      | G.     | N      |&lt;br /&gt;
|   1012 | A      | NULL   | P      |&lt;br /&gt;
|   1013 | A      | NULL   | W      |&lt;br /&gt;
|   1014 | N      | NULL   | A      |&lt;br /&gt;
+--------+--------+--------+--------+&lt;br /&gt;
9 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt; select * from Books;&lt;br /&gt;
+--------+----------------+-----------+&lt;br /&gt;
| BookID | BookTitle      | Copyright |&lt;br /&gt;
+--------+----------------+-----------+&lt;br /&gt;
|  12786 | Java           |      1934 |&lt;br /&gt;
|  13331 | MySQL          |      1919 |&lt;br /&gt;
|  14356 | PHP            |      1966 |&lt;br /&gt;
|  15729 | PERL           |      1932 |&lt;br /&gt;
|  16284 | Oracle         |      1996 |&lt;br /&gt;
|  17695 | Pl/SQL         |      1980 |&lt;br /&gt;
|  19264 | JavaScript     |      1992 |&lt;br /&gt;
|  19354 | www.sqle.ru |      1993 |&lt;br /&gt;
+--------+----------------+-----------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt; select * from AuthorBook;&lt;br /&gt;
+--------+--------+&lt;br /&gt;
| AuthID | BookID |&lt;br /&gt;
+--------+--------+&lt;br /&gt;
|   1009 |  12786 |&lt;br /&gt;
|   1006 |  14356 |&lt;br /&gt;
|   1008 |  15729 |&lt;br /&gt;
|   1011 |  15729 |&lt;br /&gt;
|   1014 |  16284 |&lt;br /&gt;
|   1010 |  17695 |&lt;br /&gt;
|   1012 |  19264 |&lt;br /&gt;
|   1012 |  19354 |&lt;br /&gt;
+--------+--------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; SELECT BookTitle, Copyright, AuthID&lt;br /&gt;
    -&amp;gt; FROM Books AS b, AuthorBook AS ab&lt;br /&gt;
    -&amp;gt; WHERE b.BookID=ab.BookID&lt;br /&gt;
    -&amp;gt; ORDER BY BookTitle;&lt;br /&gt;
+----------------+-----------+--------+&lt;br /&gt;
| BookTitle      | Copyright | AuthID |&lt;br /&gt;
+----------------+-----------+--------+&lt;br /&gt;
| Java           |      1934 |   1009 |&lt;br /&gt;
| JavaScript     |      1992 |   1012 |&lt;br /&gt;
| Oracle         |      1996 |   1014 |&lt;br /&gt;
| PERL           |      1932 |   1008 |&lt;br /&gt;
| PERL           |      1932 |   1011 |&lt;br /&gt;
| PHP            |      1966 |   1006 |&lt;br /&gt;
| Pl/SQL         |      1980 |   1010 |&lt;br /&gt;
| www.sqle.ru |      1993 |   1012 |&lt;br /&gt;
+----------------+-----------+--------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table AuthorBook;&lt;br /&gt;
Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
mysql&amp;gt; drop table Books;&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&lt;br /&gt;
mysql&amp;gt; drop table Authors;&lt;br /&gt;
Query OK, 0 rows affected (0.06 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== One table with two foreign keys==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Books(&lt;br /&gt;
    -&amp;gt;    BookID SMALLINT NOT NULL PRIMARY KEY,&lt;br /&gt;
    -&amp;gt;    BookTitle VARCHAR(60) NOT NULL,&lt;br /&gt;
    -&amp;gt;    Copyright YEAR NOT NULL&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO Books VALUES (12786, &amp;quot;Java&amp;quot;,           1934),&lt;br /&gt;
    -&amp;gt;                          (13331, &amp;quot;MySQL&amp;quot;,          1919),&lt;br /&gt;
    -&amp;gt;                          (14356, &amp;quot;PHP&amp;quot;,            1966),&lt;br /&gt;
    -&amp;gt;                          (15729, &amp;quot;PERL&amp;quot;,           1932),&lt;br /&gt;
    -&amp;gt;                          (16284, &amp;quot;Oracle&amp;quot;,         1996),&lt;br /&gt;
    -&amp;gt;                          (17695, &amp;quot;Pl/SQL&amp;quot;,         1980),&lt;br /&gt;
    -&amp;gt;                          (19264, &amp;quot;JavaScript&amp;quot;,     1992),&lt;br /&gt;
    -&amp;gt;                          (19354, &amp;quot;www.sqle.ru&amp;quot;, 1993);&lt;br /&gt;
Query OK, 8 rows affected (0.05 sec)&lt;br /&gt;
Records: 8  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Authors(&lt;br /&gt;
    -&amp;gt;    AuthID SMALLINT NOT NULL PRIMARY KEY,&lt;br /&gt;
    -&amp;gt;    AuthFN VARCHAR(20),&lt;br /&gt;
    -&amp;gt;    AuthMN VARCHAR(20),&lt;br /&gt;
    -&amp;gt;    AuthLN VARCHAR(20)&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO Authors VALUES (1006, &amp;quot;H&amp;quot;, &amp;quot;S.&amp;quot;, &amp;quot;T&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1007, &amp;quot;J&amp;quot;, &amp;quot;C&amp;quot;,  &amp;quot;O&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1008, &amp;quot;B&amp;quot;, NULL, &amp;quot;E&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1009, &amp;quot;R&amp;quot;, &amp;quot;M&amp;quot;,  &amp;quot;R&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1010, &amp;quot;J&amp;quot;, &amp;quot;K&amp;quot;,  &amp;quot;T&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1011, &amp;quot;J&amp;quot;, &amp;quot;G.&amp;quot;, &amp;quot;N&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1012, &amp;quot;A&amp;quot;, NULL, &amp;quot;P&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1013, &amp;quot;A&amp;quot;, NULL, &amp;quot;W&amp;quot;),&lt;br /&gt;
    -&amp;gt;                            (1014, &amp;quot;N&amp;quot;, NULL, &amp;quot;A&amp;quot;);&lt;br /&gt;
Query OK, 9 rows affected (0.03 sec)&lt;br /&gt;
Records: 9  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE AuthorBook(&lt;br /&gt;
    -&amp;gt;    AuthID SMALLINT NOT NULL,&lt;br /&gt;
    -&amp;gt;    BookID SMALLINT NOT NULL,&lt;br /&gt;
    -&amp;gt;    PRIMARY KEY (AuthID, BookID),&lt;br /&gt;
    -&amp;gt;    FOREIGN KEY (AuthID) REFERENCES Authors (AuthID),&lt;br /&gt;
    -&amp;gt;    FOREIGN KEY (BookID) REFERENCES Books (BookID)&lt;br /&gt;
    -&amp;gt; )&lt;br /&gt;
    -&amp;gt; ENGINE=INNODB;&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO AuthorBook VALUES (1006, 14356),&lt;br /&gt;
    -&amp;gt;                               (1008, 15729),&lt;br /&gt;
    -&amp;gt;                               (1009, 12786),&lt;br /&gt;
    -&amp;gt;                               (1010, 17695),&lt;br /&gt;
    -&amp;gt;                               (1011, 15729),&lt;br /&gt;
    -&amp;gt;                               (1012, 19264),&lt;br /&gt;
    -&amp;gt;                               (1012, 19354),&lt;br /&gt;
    -&amp;gt;                               (1014, 16284);&lt;br /&gt;
Query OK, 8 rows affected (0.03 sec)&lt;br /&gt;
Records: 8  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Authors;&lt;br /&gt;
+--------+--------+--------+--------+&lt;br /&gt;
| AuthID | AuthFN | AuthMN | AuthLN |&lt;br /&gt;
+--------+--------+--------+--------+&lt;br /&gt;
|   1006 | H      | S.     | T      |&lt;br /&gt;
|   1007 | J      | C      | O      |&lt;br /&gt;
|   1008 | B      | NULL   | E      |&lt;br /&gt;
|   1009 | R      | M      | R      |&lt;br /&gt;
|   1010 | J      | K      | T      |&lt;br /&gt;
|   1011 | J      | G.     | N      |&lt;br /&gt;
|   1012 | A      | NULL   | P      |&lt;br /&gt;
|   1013 | A      | NULL   | W      |&lt;br /&gt;
|   1014 | N      | NULL   | A      |&lt;br /&gt;
+--------+--------+--------+--------+&lt;br /&gt;
9 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt; select * from Books;&lt;br /&gt;
+--------+----------------+-----------+&lt;br /&gt;
| BookID | BookTitle      | Copyright |&lt;br /&gt;
+--------+----------------+-----------+&lt;br /&gt;
|  12786 | Java           |      1934 |&lt;br /&gt;
|  13331 | MySQL          |      1919 |&lt;br /&gt;
|  14356 | PHP            |      1966 |&lt;br /&gt;
|  15729 | PERL           |      1932 |&lt;br /&gt;
|  16284 | Oracle         |      1996 |&lt;br /&gt;
|  17695 | Pl/SQL         |      1980 |&lt;br /&gt;
|  19264 | JavaScript     |      1992 |&lt;br /&gt;
|  19354 | www.sqle.ru |      1993 |&lt;br /&gt;
+--------+----------------+-----------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt; select * from AuthorBook;&lt;br /&gt;
+--------+--------+&lt;br /&gt;
| AuthID | BookID |&lt;br /&gt;
+--------+--------+&lt;br /&gt;
|   1009 |  12786 |&lt;br /&gt;
|   1006 |  14356 |&lt;br /&gt;
|   1008 |  15729 |&lt;br /&gt;
|   1011 |  15729 |&lt;br /&gt;
|   1014 |  16284 |&lt;br /&gt;
|   1010 |  17695 |&lt;br /&gt;
|   1012 |  19264 |&lt;br /&gt;
|   1012 |  19354 |&lt;br /&gt;
+--------+--------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; SELECT BookTitle, AuthID FROM Books, AuthorBook;&lt;br /&gt;
+----------------+--------+&lt;br /&gt;
| BookTitle      | AuthID |&lt;br /&gt;
+----------------+--------+&lt;br /&gt;
| Java           |   1006 |&lt;br /&gt;
| MySQL          |   1006 |&lt;br /&gt;
| PHP            |   1006 |&lt;br /&gt;
| PERL           |   1006 |&lt;br /&gt;
| Oracle         |   1006 |&lt;br /&gt;
| Pl/SQL         |   1006 |&lt;br /&gt;
| JavaScript     |   1006 |&lt;br /&gt;
| www.sqle.ru |   1006 |&lt;br /&gt;
| Java           |   1008 |&lt;br /&gt;
| MySQL          |   1008 |&lt;br /&gt;
| PHP            |   1008 |&lt;br /&gt;
| PERL           |   1008 |&lt;br /&gt;
| Oracle         |   1008 |&lt;br /&gt;
| Pl/SQL         |   1008 |&lt;br /&gt;
| JavaScript     |   1008 |&lt;br /&gt;
| www.sqle.ru |   1008 |&lt;br /&gt;
| Java           |   1009 |&lt;br /&gt;
| MySQL          |   1009 |&lt;br /&gt;
| PHP            |   1009 |&lt;br /&gt;
| PERL           |   1009 |&lt;br /&gt;
| Oracle         |   1009 |&lt;br /&gt;
| Pl/SQL         |   1009 |&lt;br /&gt;
| JavaScript     |   1009 |&lt;br /&gt;
| www.sqle.ru |   1009 |&lt;br /&gt;
| Java           |   1010 |&lt;br /&gt;
| MySQL          |   1010 |&lt;br /&gt;
| PHP            |   1010 |&lt;br /&gt;
| PERL           |   1010 |&lt;br /&gt;
| Oracle         |   1010 |&lt;br /&gt;
| Pl/SQL         |   1010 |&lt;br /&gt;
| JavaScript     |   1010 |&lt;br /&gt;
| www.sqle.ru |   1010 |&lt;br /&gt;
| Java           |   1011 |&lt;br /&gt;
| MySQL          |   1011 |&lt;br /&gt;
| PHP            |   1011 |&lt;br /&gt;
| PERL           |   1011 |&lt;br /&gt;
| Oracle         |   1011 |&lt;br /&gt;
| Pl/SQL         |   1011 |&lt;br /&gt;
| JavaScript     |   1011 |&lt;br /&gt;
| www.sqle.ru |   1011 |&lt;br /&gt;
| Java           |   1012 |&lt;br /&gt;
| MySQL          |   1012 |&lt;br /&gt;
| PHP            |   1012 |&lt;br /&gt;
| PERL           |   1012 |&lt;br /&gt;
| Oracle         |   1012 |&lt;br /&gt;
| Pl/SQL         |   1012 |&lt;br /&gt;
| JavaScript     |   1012 |&lt;br /&gt;
| www.sqle.ru |   1012 |&lt;br /&gt;
| Java           |   1012 |&lt;br /&gt;
| MySQL          |   1012 |&lt;br /&gt;
| PHP            |   1012 |&lt;br /&gt;
| PERL           |   1012 |&lt;br /&gt;
| Oracle         |   1012 |&lt;br /&gt;
| Pl/SQL         |   1012 |&lt;br /&gt;
| JavaScript     |   1012 |&lt;br /&gt;
| www.sqle.ru |   1012 |&lt;br /&gt;
| Java           |   1014 |&lt;br /&gt;
| MySQL          |   1014 |&lt;br /&gt;
| PHP            |   1014 |&lt;br /&gt;
| PERL           |   1014 |&lt;br /&gt;
| Oracle         |   1014 |&lt;br /&gt;
| Pl/SQL         |   1014 |&lt;br /&gt;
| JavaScript     |   1014 |&lt;br /&gt;
| www.sqle.ru |   1014 |&lt;br /&gt;
+----------------+--------+&lt;br /&gt;
64 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table AuthorBook;&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt; drop table Books;&lt;br /&gt;
Query OK, 0 rows affected (0.06 sec)&lt;br /&gt;
mysql&amp;gt; drop table Authors;&lt;br /&gt;
Query OK, 0 rows affected (0.05 sec)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using AUTO_INCREMENT==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The AUTO_INCREMENT attribute can be used to generate a unique identity for new rows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE employee (&lt;br /&gt;
    -&amp;gt;      id MEDIUMINT NOT NULL AUTO_INCREMENT,&lt;br /&gt;
    -&amp;gt;      name CHAR(30) NOT NULL,&lt;br /&gt;
    -&amp;gt;      PRIMARY KEY (id)&lt;br /&gt;
    -&amp;gt;  );&lt;br /&gt;
Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc employee;&lt;br /&gt;
+-------+--------------+------+-----+---------+----------------+&lt;br /&gt;
| Field | Type         | Null | Key | Default | Extra          |&lt;br /&gt;
+-------+--------------+------+-----+---------+----------------+&lt;br /&gt;
| id    | mediumint(9) | NO   | PRI | NULL    | auto_increment |&lt;br /&gt;
| name  | char(30)     | NO   |     |         |                |&lt;br /&gt;
+-------+--------------+------+-----+---------+----------------+&lt;br /&gt;
2 rows in set (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; INSERT INTO employee (name) VALUES (&amp;quot;A&amp;quot;),&lt;br /&gt;
    -&amp;gt;                                    (&amp;quot;B&amp;quot;),&lt;br /&gt;
    -&amp;gt;                                    (&amp;quot;C&amp;quot;),&lt;br /&gt;
    -&amp;gt;                                    (&amp;quot;D&amp;quot;),&lt;br /&gt;
    -&amp;gt;                                    (&amp;quot;E&amp;quot;),&lt;br /&gt;
    -&amp;gt;                                    (&amp;quot;F&amp;quot;);&lt;br /&gt;
Query OK, 6 rows affected (0.00 sec)&lt;br /&gt;
Records: 6  Duplicates: 0  Warnings: 0&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; SELECT * FROM employee;&lt;br /&gt;
+----+------+&lt;br /&gt;
| id | name |&lt;br /&gt;
+----+------+&lt;br /&gt;
|  1 | A    |&lt;br /&gt;
|  2 | B    |&lt;br /&gt;
|  3 | C    |&lt;br /&gt;
|  4 | D    |&lt;br /&gt;
|  5 | E    |&lt;br /&gt;
|  6 | F    |&lt;br /&gt;
+----+------+&lt;br /&gt;
6 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using Foreign Keys==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In MySQL, InnoDB tables support checking of foreign key constraints.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;For non-InnoDB tables,  REFERENCES tbl_name(col_name) clause has no actual effect.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;It serves only as a comment to the column.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE person (&lt;br /&gt;
    -&amp;gt;     id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,&lt;br /&gt;
    -&amp;gt;     name CHAR(60) NOT NULL,&lt;br /&gt;
    -&amp;gt;     PRIMARY KEY (id)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE shirt (&lt;br /&gt;
    -&amp;gt;     id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,&lt;br /&gt;
    -&amp;gt;     owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id),&lt;br /&gt;
    -&amp;gt;     PRIMARY KEY (id)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; desc person;&lt;br /&gt;
+-------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
| Field | Type                 | Null | Key | Default | Extra          |&lt;br /&gt;
+-------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
| id    | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |&lt;br /&gt;
| name  | char(60)             | NO   |     |         |                |&lt;br /&gt;
+-------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt; desc shirt;&lt;br /&gt;
+-------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
| Field | Type                 | Null | Key | Default | Extra          |&lt;br /&gt;
+-------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
| id    | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |&lt;br /&gt;
| owner | smallint(5) unsigned | NO   |     |         |                |&lt;br /&gt;
+-------+----------------------+------+-----+---------+----------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table shirt;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt; drop table person;&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>