我只想要那些主键是恒定和动态的。我只想主键是约束和动态
ps:MySQL数据库
User's Table
|| user_id || user_first_name || user_last_name
#1 Alexandre Doria
#2 Ilya Bursov
#3 Anybody Anybody
因此,如果我删除#2行,并插入新行,则#3行的主键是重复的。
我的PHP代码:
$ user_id_cont = mysql_query(“select'user_id'from user”); $ user_id = mysql_num_rows($ user_id_cont)+1;
答案 0 :(得分:0)
在代码中完成计算主键是完全错误的
首先 - 将user_id列更改为主键(它也将是唯一的),也将其设置为auto_increment,因此您的表create语句必须是:
create table sample_users (
`user_id` int unsigned not null auto_increment,
`first` varchar(255),
`last` varchar(255),
primary key (`user_id`)
);
接下来,您需要在表格中插入数据,因此您只需插入数据:
INSERT into `sample_users` (`first`, `last`) values('fname', 'lname');
INSERT into `sample_users` (`first`, `last`) values('fname2', 'lname2');
...
mysql会为每一行生成相应的user_id,即使你删除其中的一些 - mysql仍然会为你提供唯一的值
另外一种情况是 - 如果你需要知道mysql生成了什么id,你可以使用PHP mysql_insert_id或MySQL LAST_INSERT_ID函数
仅供注意:错误的方法,但它适用于“学校项目”,将您的代码更改为:
$user_id_cont = mysql_query("select max('user_id') from user");
$user_id = mysql_fetch_array($user_id_cont, MYSQL_NUM);
$user_id = $user_id[0]+1;