gpt4 book ai didi

mysql - 有人可以帮我理解这个 MySql 语句并将其转换为 Postgresql 吗?

转载 作者:行者123 更新时间:2023-11-29 05:40:18 24 4
gpt4 key购买 nike

所以我正在处理的代码由 PHP 执行此语句(注意:这是从 PostgreSQL 日志文件中获取的,因此它不包含任何 PHP 内容):

CREATE temporary table IF NOT EXIST temp tablename(id int primary key,
shared int default 0) replace select 1, userid as id
from tablefoo where sharedid = 1337

我不太明白这里到底发生了什么,我知道临时表是什么,我可以相当准确地猜测 IF NOT EXIST 做了什么,但是 replace 在这里做什么?我知道替换就像插入一样,但它也替换东西,但在这种情况下,没有指定任何东西来替换,所以它只是用什么替换一些东西以及为什么选择 1,我知道这几乎只是告诉你如果你的表有行或其他东西,但在这里使用它有什么意义?

经过一番研究,我发现PostgreSQL中不存在IF NOT EXIST和replace。大多数在线资源建议使用 SQL 函数来替换它们。

我应该使用 SQL 函数来模拟 IF NOT EXIST 吗?如果是这样,我会写什么(抱歉,我是 SQL 的新手)或者我应该只使用 PHP 函数。更换呢?

抱歉打扰了,谢谢抽空,哦,如果你们不忙什么的,也可以告诉我如何模拟“忽略”,我目前的解决方案是任意删除它。

最佳答案

MySQL 中对临时表的许多使用在 PostgreSQL 中可以用通用表表达式或普通子查询代替。

WITH someCTE AS (
SELECT
...
) SELECT/UPDATE/DELETE ... WHERE sometable.column = someCTE.another_column;

关于mysql - 有人可以帮我理解这个 MySql 语句并将其转换为 Postgresql 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com