2011-08-10 297 views
1

我试图删除的richiestePreventivo记录,但是当我在phpMyAdmin这样做SQL代码我有0行删除:删除行与MySQL

DELETE FROM `RichiestePreventivo` as `p` WHERE (`p`.`idImpresa` = 17) 

richiestePreventivo我有一个包含一个记录:

id idPrivato idImpresa data_invio 
13 11   17   2011-08-25 

my database

什么问题?

+0

尝试'DELETE FROM RichiestePreventivo WHERE idImpresa = 11' –

+0

你尝试过没有锯齿表吗?我不知道为什么你需要这样做(虽然我不认为这是问题...)。 '删除从RichiestePreventivo WHERE idImpresa = 11' – jadarnel27

回答

1

可能是这列是一个外键到另一个表和外键属性删除不列入有CASCADE选项,但具有不采取行动的选项

+0

我该如何设置它? – michele

+0

你在使用什么管理工具?蟾蜍? Mysql Workbench? – Baaju

+0

或使用以下语法:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name](index_col_name,...)REFERENCES tbl_name(index_col_name,...)[ON DELETE reference_option] [ON UPDATE reference_option] change the reference_option到CASCADE,以及您必须删除并创建约束或ALTER约束的方法 – Baaju

0

尝试把值加引号是这样的:

DELETE FROM RichiestePreventivo as p WHERE (p.idImpresa = "11") 
+0

我不认为这样做,因为他在架构中显示idImpresa字段是一个Int – jadarnel27

1

只要richiestePreventivo表的PK是不是有些其他的表,你可以在一个外键:

DELETE FROM RichiestePreventivo WHERE (idImpresa = 17) 

我知道这个作品在SQL Server中,但如果它在DB工作正在使用

DELETE p FROM RichiestePreventivo as p WHERE (p.idImpresa = 17) 

时,你必须参加多个表和使用别名第二条语句是非常有用的不确定。