首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于自动生成的字段,必须在SQL语句中输入什么内容?

对于自动生成的字段,必须在SQL语句中输入什么内容?
EN

Stack Overflow用户
提问于 2012-03-23 04:24:37
回答 6查看 135关注 0票数 4

我的MySQL表中的第一列是具有自动增量的主键。我正在尝试用PHP添加一个新行,如下所示。

代码语言:javascript
复制
mysql_query("INSERT INTO users VALUES ('', '$username', '$hashedPassword')");

我应该在''或第一个字段中放入什么?它是自动生成的,但我不希望该字段为空。

有趣的是,让字段为空是可行的,但我担心在我没有遇到过的某些情况下,这一点会中断。放在那里的标准实体是什么?

另外,您的解决方案是否也适用于默认为当前时间的时间戳字段?

我是第一次接触PHP和MySQL。谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-23 04:27:37

养成这样指定字段的习惯是很好的

代码语言:javascript
复制
INSERT INTO users (username,password) VALUES ( '$username', '$hashedPassword')

或者,如果您也想指定id字段,请使用NULL

代码语言:javascript
复制
INSERT INTO users (id,username,password) VALUES (NULL, '$username', '$hashedPassword')

通过指定字段,您的代码不太可能中断,例如,如果您向表中添加额外的字段。

票数 1
EN

Stack Overflow用户

发布于 2012-03-23 04:27:57

INSERT INTO users ('username', 'hashedpassword') VALUES ('$username', '$hashedPassword')

您不需要引用自动生成的id字段,因为它将由MySQL处理。

票数 2
EN

Stack Overflow用户

发布于 2012-03-23 04:26:19

您可以使用NULL

但是,更好的做法是显式地命名这些列,并省略该列。

代码语言:javascript
复制
INSERT INTO users (username, hashedPassword)
VALUES ('$username', '$hashedPassword')

MySQL manual

没有为AUTO_INCREMENT列指定值,因此MySQL会自动分配序列号。您还可以显式地将NULL或0赋给列以生成序列号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9829925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档