sql – “DELETE FROM table”的output_expression是什么?
我最近遇到了一个奇怪的事情.以下是有效的SQL:
DELETE FROM customer *; PostgreSQL DELETE的文档说明星是output_expression的一个可能值:
我试过,没有明星,看不出有什么区别.事实上,我可以把任何单词放在桌子名后面,并且被接受.它甚至不必是一个实际的列名.没有额外的回报. db=> DELETE FROM customer wheeeeeee; DELETE 19 那么它做什么,我可以用它呢? 问题also posted on the PostgreSQL mailing list. 解决方法星号不是output_expression,因此您必须使用RETURNING关键字.而是一个旧的,过时的语法,用于在查询中包含子表. (最后一个版本的文档似乎是 PostgreSQL 8.1.由于语法仍然有效,它是一个文档错误,Tom Lane在下面链接中指出.)因为PostgreSQL 7.1这是默认的(除非sql_inheritance被设置为off),而ONLY关键字是用于相反的,所以*并不是很有用. 见this explanatory post from Tom Lane on the PostgreSQL mailing list. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |