Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用约束在sql中创建新表_Sql_Oracle - Fatal编程技术网

利用约束在sql中创建新表

利用约束在sql中创建新表,sql,oracle,Sql,Oracle,我正试图根据以下信息创建一个查询。在尝试创建这个时,我一直违反主键 创建表编写器 作者VARCHAR24, lname VARCHAR210, fname VARCHAR210, isbn VARCHAR210, title VARCHAR230约束title\u nn不为空, 约束wt_pk主键authorid, 约束wt_fk外键isbn参考书isbn; 插入编剧 选择authorid、fname、lname、isbn、title 来自作者 使用authorid连接bookauthor 使用

我正试图根据以下信息创建一个查询。在尝试创建这个时,我一直违反主键

创建表编写器 作者VARCHAR24, lname VARCHAR210, fname VARCHAR210, isbn VARCHAR210, title VARCHAR230约束title\u nn不为空, 约束wt_pk主键authorid, 约束wt_fk外键isbn参考书isbn; 插入编剧 选择authorid、fname、lname、isbn、title 来自作者 使用authorid连接bookauthor 使用isbn连接书籍; 更改表格员工 添加约束et_pk 主键ssn;
您尝试解决的练习中最重要的信息是:不要复制这些表中的数据

在数据库模式中,有一个表bookauthor,它表示book表和author表之间的多对多关系。每个作者可以写多本书,在这种情况下,用于填充writers表的语句会为同一作者返回多行。这会导致您在批量插入期间出现主键冲突

您可以通过稍微修改查询来检查这一点,以查找结果中包含多行的authorid

SELECT authorid, count(1)
     FROM author
     JOIN bookauthor USING (authorid)
     JOIN books USING (isbn)
GROUP BY authorid
HAVING COUNT(1) > 1;
主键设置为authorid的writers表不是很有用,因此在本练习中不应尝试填充它。

请阅读并接受答案