Sql &引用;此行没有唯一标识符。”;在Postgres中尝试删除行时
我有一个简单的表,它有以下方案:Sql &引用;此行没有唯一标识符。”;在Postgres中尝试删除行时,sql,postgresql,Sql,Postgresql,我有一个简单的表,它有以下方案: CREATE TABLE dateien( id int PRIMARY KEY UNIQUE DEFAULT NEXTVAL('dateien_id_seq'), name varchar(64), zeit timestamp DEFAULT now(), groesse float, dateityp_id int references dateitypen(id), benutzer_id int refe
CREATE TABLE dateien(
id int PRIMARY KEY UNIQUE DEFAULT NEXTVAL('dateien_id_seq'),
name varchar(64),
zeit timestamp DEFAULT now(),
groesse float,
dateityp_id int references dateitypen(id),
benutzer_id int references benutzer(id)
);
当尝试通过phppgadmin删除行时,我始终会收到以下消息:
此行没有唯一标识符。
此外,通过纯sql,delete语句之后没有任何效果。
您能告诉我问题出在哪里吗?我看不出引用的表是如何创建的。
dateityp_id int references dateitypen(id),
benutzer_id int references benutzer(id)
因此,我只能猜测…,作为一个例子。表产品、订单、日期
如果在创建引用产品的订单后删除了产品,该怎么办?SQL也允许您指定它。直观地说,我们有几个选择:
- 不允许删除引用的产品
- 同时删除订单
- 还有别的吗
product_no integer REFERENCES products ON DELETE RESTRICT,
order_id integer REFERENCES orders ON DELETE CASCADE,
限制和级联删除是两种最常见的选项。限制也可以写为无操作,如果不指定任何内容,它也是默认设置。对于删除主键时外键列的情况,还有两个其他选项:SET NULL和SET DEFAULT。请注意,这些并不能免除您遵守任何约束的责任。例如,如果某个操作指定SET DEFAULT,但默认值不满足外键,则删除主键将失败
更多信息:我看不到引用表是如何创建的。
dateityp_id int references dateitypen(id),
benutzer_id int references benutzer(id)
因此,我只能猜测…,作为一个例子。表产品、订单、日期
如果在创建引用产品的订单后删除了产品,该怎么办?SQL也允许您指定它。直观地说,我们有几个选择:
- 不允许删除引用的产品
- 同时删除订单
- 还有别的吗
product_no integer REFERENCES products ON DELETE RESTRICT,
order_id integer REFERENCES orders ON DELETE CASCADE,
限制和级联删除是两种最常见的选项。限制也可以写为无操作,如果不指定任何内容,它也是默认设置。对于删除主键时外键列的情况,还有两个其他选项:SET NULL和SET DEFAULT。请注意,这些并不能免除您遵守任何约束的责任。例如,如果某个操作指定SET DEFAULT,但默认值不满足外键,则删除主键将失败
更多信息:啊,该死的。。。我发现了错误。我忘了提到一个触发器,它在这张桌子上也是活动的。触发因素是:
CREATE TRIGGER update_quota BEFORE INSERT OR UPDATE OR DELETE
ON dateien
FOR EACH ROW
EXECUTE PROCEDURE f_update_quota();
但是当删除时,我返回了一些错误。这就是它不起作用的原因。啊,该死的。。。我发现了错误。我忘了提到一个触发器,它在这张桌子上也是活动的。触发因素是:
CREATE TRIGGER update_quota BEFORE INSERT OR UPDATE OR DELETE
ON dateien
FOR EACH ROW
EXECUTE PROCEDURE f_update_quota();
但是当删除时,我返回了一些错误。这就是它不起作用的原因。删除语句后“无效果”的确切含义是什么?是否有错误?是否提交了删除?哪里有“无效果”“。当我输入时:
delete from dateien,其中id=1代码>我只是得到没有找到行。
并且有一行具有此ID。您有可能在不同的模式中有多个同名的表?不,数据库中只有一个模式“delete语句后没有效果?您有错误吗?您提交了delete吗?这是什么意思?”无效“。当我输入时:delete from dateien,其中id=1代码>我只是发现没有找到行。
有一行具有此ID。您有可能在不同的模式中有多个同名表?不,数据库中只有一个模式这不是问题所在。正如我在回答中所描述的那样,我忘记了要提及的事情。不过还是要谢谢你!这不是问题所在。正如我在回答中所描述的那样,我忘记了要提及的事情。不过还是要谢谢你!