admin

在不设置主键的情况下插入值

sql

我有这样的最小数据库

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  `pass` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  `reg_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=40 ;

然后我尝试插入新用户,仅设置用户名/电子邮件/密码

“;“插入到users设置名称=’用户名’,电子邮件=’用户_电子邮件’,’通行证’=’用户_顶部_秘密_通行证’。”;

或每次我插入新的ID如:

INSERT INTO `users` (`id`, `name`, `email`, `pass`, `reg_time`) VALUES
(1, 'user', 'user@server.com', 'pass', '2016-01-31 03:10:13');

名称和电子邮件是唯一的,时间是默认的当前时间戳,我不需要测试它们。这很好,但是我如何插入ID,我需要吗?

在本地phpmyadmin上进行测试不会给我带来任何新的变化。

upd:使用php函数删除了过时的代码,仅删除了sql。


阅读 173

收藏
2021-07-01

共1个答案

admin

天哪,只需将其设置为null,就可以了!!!!

INSERT INTO `users` (`id`, `name`, `email`, `pass`, `reg_time`) VALUES
(null, 'user', 'user@server.com', 'pass', null);
2021-07-01