需要澄清mysql语法

时间:2015-04-18 12:32:36

标签: mysql syntax create-table

CREATE TABLE `table1` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `email` varchar(128) DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `email` (`email`)
)

-

CREATE TABLE `table2` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`email` varchar(128) DEFAULT NULL UNIQUE,
)

问题:

  1. 创建时,table1和table2之间有什么区别吗?
    (我假设没有,但更好的问题是生活在幸福的无知中;)
  2. if(是)它是什么? if(no)为什么我们有不同的语法?
  3. 较大的表show create table tbl_name中的
  4. 会显示UNIQUE KEY email_2 (email)或其他_num。为什么? tlb_name_num的含义是什么,它用于什么?
  5. 什么语法更可取?为什么?
  6. show create table tbnm始终以table1格式显示sql,即使table是由table2 sql语法创建的。为什么?
  7. UNIQUE KEY (email)也有效。但它已转换为UNIQUE KEY email (email)上的show create table。为什么它会起作用,为什么会改变它等等?

1 个答案:

答案 0 :(得分:1)

  1. 两个表之间没有区别。
  2. 有不同的语法首先声明所有内容然后添加主键,唯一...或者如果有些人喜欢立即执行它们也有可能
  3. 不知道,如果找到则编辑
  4. 他们都做同样的事情,使用你喜欢的东西。
  5. 不知道,如果找到则编辑
  6. 不知道,如果找到则编辑