MySQL在所需位置下插入列的问题

时间:2016-01-21 10:42:00

标签: mysql

我一直在尝试向此表学生添加数据值时感到沮丧。我拥有所有其他数据值并已删除并创建了student_id列。但是,在尝试使用此查询添加数据时:

insert into students(student_id) values('1'),('2'),('3'),('4'),('5');

数据未正确插入,因为它会在包含数据的前5列下创建新列。

一定是因为我的值不是空值,但我不能拥有not null标识符。

是否有一个查询命令允许我在现有的填充值列中更改数据?到目前为止,我没有成功找到这个。

以下是一些可以进一步解释问题的图片。

  1. The query I have made to add my values to the table:

  2. The data was inserted but as it is underneath the columns I need to map with a foreign key, I cannot use the column as the top 5 values are still my not null default, which is required to let me create the foreign key

2 个答案:

答案 0 :(得分:0)

INSERT是错误的命令,因为您要更新现有行。这里的问题在于行的顺序是不确定的,我认为你不能在一个语句中更新它们。一种解决方案如下:

 UPDATE students SET student_id = 1 WHERE first_name = 'Berry';
 UPDATE students SET student_id = 2 WHERE first_name = 'Darren';

我希望你真的只有5列可以更新: - )

答案 1 :(得分:0)

看起来您已经创建了最初没有student_id字段的记录,您想要更新当前记录,但实际上是在插入新记录。

您的意思是用更新语句更新您的学生,例如“UPDATE students SET student_id = X where condition = Y”

然后看起来你的student_id是你应该设置为AUTO_INCREMENT值的主键。

此致