0

我有一个关于 SQL 查询的问题。我有 2 张桌子:

学生

student_ID (int, NOT allowed nulls)
class_ID (int, NOT allowed nulls)
email (varchar(50), NOT allowed nulls)

完全的

student_ID (int, NOT allowed nulls)
completed (bool, NOT allowed nulls)
random_code (allowed nulls)

Student充满了学生 ID,我希望表中的每个student_IDSTUDENTstudent_ID在表中COMPLETED,并且默认情况下我希望完成COMPLETED为 false。

现在我有以下查询尚未按我的意愿工作:

INSERT INTO COMPLETED (student_ID) 
   SELECT student_ID FROM STUDENT

这还不起作用,因为未分配中的completedCOMPLETED,因此是NULL不允许的。如何完成我的查询,它将完成的 bool 分配给并将FALSE学生 ID 从STUDENTinto复制COMPLETED

提前致谢。

4

1 回答 1

4

试试这个(如果您使用的是SQL Server - 您在问题中并不清楚):

INSERT INTO COMPLETED (student_ID, completed) 
   SELECT student_ID, 0
   FROM STUDENT

如果要提供值,则必须添加completed到语句的列列表中INSERT,并且由于要将所有这些值设置为“false”(或在 SQL Server 中),因此只需在语句0中提供该值。SELECT

于 2013-10-30T08:05:53.430 回答