MySQL查询添加的说明

时间:2014-05-23 09:32:49

标签: c# mysql

我正在我的C#应用​​程序中编写一个函数,在这个实例中是在MySQL数据库中创建一个新表。但是,当我编辑表结构(创建后)时,我看到三行未通过代码添加。

我是否需要仔细检查其中任何一项,或者它们是否正常?

AUTO_INCREMENT = 1
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

使用的语法:

CREATE TABLE egr。test( machine_id int NOT NULL AUTO_INCREMENT, machine_desc varchar(64)DEFAULT NULL, product_family varchar(64)DEFAULT NULL, factory varchar(64)DEFAULT NULL, model varchar(64)DEFAULT NULL, size varchar(64)DEFAULT NULL, PRIMARY KEY(machine_id))ENGINE = INNODB;

1 个答案:

答案 0 :(得分:1)

代码没有问题。当您创建如下表格时

CREATE TABLE test ( 
machine_id int NOT NULL AUTO_INCREMENT, 
machine_desc varchar(64) DEFAULT NULL, 
product_family varchar(64) DEFAULT NULL, 
factory varchar(64) DEFAULT NULL, 
model varchar(64) DEFAULT NULL, 
size varchar(64) DEFAULT NULL, 
PRIMARY KEY (machine_id)
) ENGINE = INNODB ;

然后使用命令show create table test

你会看到一些东西

| test  | CREATE TABLE `test` (
  `machine_id` int(11) NOT NULL AUTO_INCREMENT,
  `machine_desc` varchar(64) DEFAULT NULL,
  `product_family` varchar(64) DEFAULT NULL,
  `factory` varchar(64) DEFAULT NULL,
  `model` varchar(64) DEFAULT NULL,
  `size` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`machine_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

现在为什么AUTO_INCREMENT = 1没有显示,因为如果它在开头设置为1然后它没有显示,则意味着它被设置为1暗示,但是如果你创建相同的上面的表

CREATE TABLE test ( 
machine_id int NOT NULL AUTO_INCREMENT, 
machine_desc varchar(64) DEFAULT NULL, 
product_family varchar(64) DEFAULT NULL, 
factory varchar(64) DEFAULT NULL, 
model varchar(64) DEFAULT NULL, 
size varchar(64) DEFAULT NULL, 
PRIMARY KEY (machine_id)
) ENGINE = INNODB AUTO_INCREMENT = 2 ;

然后show create table test它将显示为

| test  | CREATE TABLE `test` (
  `machine_id` int(11) NOT NULL AUTO_INCREMENT,
  `machine_desc` varchar(64) DEFAULT NULL,
  `product_family` varchar(64) DEFAULT NULL,
  `factory` varchar(64) DEFAULT NULL,
  `model` varchar(64) DEFAULT NULL,
  `size` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`machine_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 |

由于主键不长于1,表描述将显示auto_incremented值的最后一个id。

如果您需要了解数据库中表的其他详细信息,可能需要使用以下命令

show table status from your_db_name \G

你可能会得到一些东西

mysql> show table status from test \G
*************************** 1. row ***************************
           Name: test
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 12582912
 Auto_increment: 2
    Create_time: 2014-05-23 16:39:08
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: