MySQL外键的相关语法


  本文标签:MySQL外键

  MySQL可以通过CREATE TABLE 或者ALTER TABLE 来定义MySQL外键  。下面就为您介绍这两种方法相关的语法,希望对您学习MySQL外键方面有所帮助  。

  CREATE TABLE 定义MySQL外键的语法:

  1. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name  
  2.       [(create_definition,…)]  
  3.  
  4. create_definition:  
  5.       column_definition  
  6.     | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,…) [reference_definition]  
  7.  
  8. column_definition:  
  9.       col_name type [NOT NULL | NULL] [DEFAULT default_value]  
  10.           [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]  
  11.           [COMMENT ’string’] [reference_definition]  
  12.  
  13. index_col_name:  
  14.       col_name [(length)] [ASC | DESC]  
  15.  
  16. reference_definition:  
  17.       REFERENCES tbl_name [(index_col_name,…)]  
  18.                  [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]  
  19.                  [ON DELETE reference_option]  
  20.                  [ON UPDATE reference_option]  
  21.  
  22. reference_option:  
  23.       RESTRICT | CASCADE | SET NULL | NO ACTION  

  ALTER TABLE 定义MySQL外键的语法:

  1. ALTER [IGNORE] TABLE tbl_name  
  2.       alter_specification [, alter_specification] …  
  3.  
  4. alter_specification:  
  5.     | ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,…)  
  6.     | ADD [CONSTRAINT [symbol]] UNIQUE [INDEX] [index_name] [index_type] (index_col_name,…)  
  7.     | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,…) [reference_definition]  
  8.     | DROP FOREIGN KEY fk_symbol