如果我有这样的mysql表:
CREATE TABLE users(
id int( 11 ) NOT NULL AUTO_INCREMENT ,
name varchar( 80 ) NOT NULL ,
surname varchar( 80 ) NOT NULL ,
address varchar( 80 ) NOT NULL ,
birth_place varchar( 50 ) NOT NULL ,
province varchar( 5 ) NOT NULL ,
birth_date date NOT NULL ,
sex enum( 'male', 'female' ) NOT NULL DEFAULT 'male',
treatment enum( 'politrauma', 'cardiologico', 'neurologico' ) NOT NULL DEFAULT 'politrauma',
PRIMARY KEY ( id )
) ENGINE = MYISAM DEFAULT CHARSET = utf8
我执行查询以插入数据:
"INSERT INTO users (name,
surname,
address,
birth_place,
province,
dt,
sex,
treatment) value (:name
:surname,
:address,
:birth_place,
:province,
:dt,
:sex,
:treatment)"
在mysql table中没有填充id
。这可能导致错误?mysql会自动填充id
的int值吗?
答案 0 :(得分:1)
你想要的猜测:
ALTER TABLE `XXX` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT ;
答案 1 :(得分:0)
主键定义属性,使其对表中的元组(行)是唯一的。
必须选择主键(可以有多个主键),以便组合(在当前行上)它们在任何不同的行上永远不会相同。
auto_increment 定义将行插入表格时自动创建(增加)该列中的值。属性不必是使用auto_increment的主键。
因此,如果您希望值自动增加,则必须使用auto_increment
,否则将其设置为null。
答案 2 :(得分:0)
您必须在AUTO_INCREMENT
之后添加id int(11)
属性,否则,这不会自动填充。