我必须准备并执行一个脚本文件,用有关customers、current orders和products的数据在Oracle中创建和填充关系数据库。这些关系是:每个客户可以下任意数量的当前订单,每个当前订单由一个customer.Each下,当前订单是针对一个产品的,但是每个产品可以是任意数量的当前订单。
运行此脚本时,我找不到错误。Customer和Products表已成功填充,但Current_Orders表未填充。当我运行它时,会出现一些错误代码,但我不了解它们,因为我对SQL相当陌生。任何帮助都将不胜感激。谢谢!ORA-00001,ORA-00955,ORA-02449。
drop ta
我已经创建了两个表用户和联系人。用户是父表,联系人是子表。我将userId称为联系人表中的外键。我已经进行了以下查询。
CREATE TABLE user(
userId INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NULL,
phone VARCHAR(50) NULL,
email VARCHAR(50) NULL,
address VARCHAR(150) NULL,
loginName VARCHAR(45) NOT NULL,
password VARCHAR(50) NOT NULL,
role INT
既然我可以在不使用关系键(主键和外键)的情况下连接两个表,那么首先定义这些键的目的是什么呢?
例如,我的第一个表是
customer table
fields are cust_id, lastname, firstname
我的第二张表是
product table
fields are product_id, productno, cust_id
即使我没有声明任何字段作为主键或外键,我仍然可以连接这两个表:
SELECT *
FROM customer c
LEFT OUTER JOIN product p ON p.custid=c.cust_id
那么为什么我要定义这些键呢?
我需要在“用户名”表上添加一个主键
我有三栏:
userid int(10)
username char(20)
user char(50)
主键设置在'username‘字段上,我使用它作为外键将其链接到另一个表。现在我还需要在'userid‘字段中添加主键.所以我试了一下:
alter table `usernames` drop primary key, add primary key(userid,username);
我说错了
ERROR 1553 (HY000): Cannot drop index 'PRIMARY":needed in a for
在图像中,“外键关系”窗口显示itemModifier_Rel表的FK,而在对象资源管理器上则不显示相同的结果。
这些有什么区别?
我有一个重复的键问题,一些DBA有一个错误的过程,导致这一点,我试图修复它。我删除了复制件,但现在我看到了。虽然表的结果CREATE TABLE脚本仅显示了3 FK,但在外键关系上,我看到了6
以下是删除复制的FK后的表脚本
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[itemModifier_Rel](
[ItemModifierTypeID] [bi
我有以下的T来创建3个SQL表:
create table dbo.Posts
(
Id int identity not null
constraint PK_Posts_Id primary key clustered (Id),
Active bit not null
constraint DF_Posts_Active default (0)
);
create table dbo.PostsLocalized
(
Id int not null,
Culture int not null
constraint CK_PostsLocal
我有一个像这样的桌子结构:
Person
Id
PersonDemographic
Id
PersonId
Person > PersonDemographic是一对一的关系,是通过对PersonDemogrphic.PersonId的唯一约束来强制这样做的。
这个结构遍及这个特定的数据库。因此,从Person到包含person详细信息的表的任何连接都包括散列匹配和表扫描。
为了优化查询,我尝试将人员ids (而不是表标识)设置为群集主键。这导致嵌套循环和聚集索引扫描(和轻微的性能改善)。
知道这是一对一的关系,我想我也许可以通过给join FORCESEEK提示来提高性能;然而
我有两个网站,销售相同的产品(相同的数据库结构和一切)。其中一家公司最近更新了所有产品,我们需要从更新后的网站上的三个表中获取数据,并覆盖过期网站上的这三个表。有没有一种方法可以使用Sql Server MS?我尝试过截断db1table中的表,然后执行"insert into select * from db2table“,但我只是从外键得到错误。有人在visual studio企业版中向我展示了一个比较数据的技巧,其中vs会吐出一个.sql文件,您可以运行该文件来更新表,但我只有vs professional 2010,这似乎不是软件包的一部分。
我有两个表,它们通过几列上的关系连接在一起。我想创建一个外键来清理连接的实体,而不是删除它们--我需要使用"SET NULL“选项。
我的表:
CREATE TABLE resource
(
id integer NOT NULL,
project_id integer NOT NULL,
lang character(2) NOT NULL,
recource_id integer,
reserved_by integer NOT NULL,
CONSTRAINT resource_v0_pkey PRIMARY KEY (id, project_id, l
我有一组需要放入Sqlite文件中的表。它们有外键约束。如何找出删除表的正确顺序?或者有一个"drop a list of tables“命令可以帮我解决这个问题?如果将" ORDER“添加到任何与SQL相关的web搜索中,将返回有关ORDER关键字的信息,那么我应该在web上搜索什么才能获得有关此问题的帮助。
我有两张桌子。第一个表是feed,(feeds.ID)是主键。第二个表是项目。feeds.ID与items.feed_ID相关,因此通过简单的内部连接,我可以提取每个提要的数据。
现在,我删除了一些提要,但没有从items表中删除它们。我想找到在提要表中没有资源的项目。另一方面,我想找到无用的物品。什么是正确的查询?
我试过这样做:
select * from items where feed_id NOT IN
(select id from feeds
inner join items on feeds.id=items.feed_id group by fee