标签: syntax

PostgreSQL 中关键字“ID”的用途是什么?

我是 PostgreSQL 的新手,在使用以下查询时遇到了问题:

SELECT * FROM table1 WHERE ID = 1
Run Code Online (Sandbox Code Playgroud)

错误:列“id”不存在第 2 行:WHERE ID = 1

其中 ID 是我通过 GUI 工具添加的列。

然后我发现 ID 是我当前版本的 PSQL 中的一个关键字,应该被引用。但我无法识别这个 ID 是做什么用的。

在链接页面上有以下通知:

在学习表 C-1 之前,重要的是要了解在 PostgreSQL 中没有保留关键字 (==true) 的事实并不意味着与该词相关的功能没有实现。

所以,ID 没有被标记为 PostgreSQL 关键字,似乎有一个功能与之相关,但我找不到哪个。SELECT ID 本身变成与上面发布的相同的错误消息。

postgresql syntax features reserved-word postgresql-9.1

3
推荐指数
1
解决办法
1673
查看次数

MySQL:用一个查询创建多个表

你能在一个 MySQLCREATE TABLE查询中列出多个表名吗?

CREATE TABLE table1, table2, table3 LIKE table_template;
Run Code Online (Sandbox Code Playgroud)

如果是这样,你能用IF NOT EXISTS子句来做吗?

CREATE TABLE IF NOT EXISTS table1, table2, table3 LIKE table_template;
Run Code Online (Sandbox Code Playgroud)

我知道你可以这样做DROP TABLE

DROP TABLE IF EXISTS table1, table2, table3;
Run Code Online (Sandbox Code Playgroud)

文档DROP TABLE明确表明您输入名称的字符串:

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]
Run Code Online (Sandbox Code Playgroud)

文档CREATE TABLE不显示表名字符串:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [partition_options]

More Syntax Variations ...
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我明确指出可以或不能使用一个查询创建多个表的参考吗?

我在CREATE TABLE …

mysql syntax

3
推荐指数
1
解决办法
3万
查看次数

为什么它是截断表,而不是简单地截断?

在审查我们的一些代码时,一位同事认为,TRUNCATE TABLETRUNCATE.

谷歌搜索这个,我确实找不到TABLE需要该部分的具体原因。
我错过了什么?TABLEin 有TRUNCATE TABLE什么历史原因吗?

sql-server syntax truncate

3
推荐指数
1
解决办法
587
查看次数

在 ANY() 条件中使用来自子查询的数组表达式

我有一个相对复杂的查询,其子查询获取一个数组,如下所示:

...
ARRAY(SELECT category_id FROM category_schedule_con con
      WHERE s.id = con.schedule_id ORDER BY category_id) AS cats,
...
Run Code Online (Sandbox Code Playgroud)

并希望在以后的 WHERE 条件中使用数组“cats”,例如

...
WHERE 4 = ANY(cats)
...
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它指出“cats”列不存在。c/p'ing 子查询到ANY子句中会产生预期的结果。

postgresql syntax subquery

3
推荐指数
1
解决办法
8349
查看次数

是否可以写(A OR B) IN(X, Y, ..., W)?

是否可以写成 (A OR B) IN(X, Y, ..., W) ?

我需要填写两个IN()expr。手动具有相同的值。喜欢:

A IN(X, Y, ..., W) OR B IN(X, Y, ..., W)
Run Code Online (Sandbox Code Playgroud)

IN()只填写一项的最佳选择是什么?

mysql syntax

3
推荐指数
1
解决办法
1091
查看次数

我可以编写不带 OR IS NULL 的 FULL OUTER JOIN 吗?

这里有一些可以使用的数据:

CREATE TABLE a (
    a_id   int  NOT NULL,
    a_prop text NOT NULL
);

CREATE TABLE b (
    b_id   int  NOT NULL,
    b_prop text NOT NULL
);

INSERT INTO a VALUES (1, 'blah'), (2, 'blah'), (4, 'not this one');
INSERT INTO b VALUES (1, 'blah'), (3, 'blah'), (5, 'not this one');
Run Code Online (Sandbox Code Playgroud)

现在我想编写一个返回的查询:

结果

一种可能性是:

SELECT *
FROM a
FULL OUTER JOIN b ON a_id = b_id
WHERE (a_prop = 'blah' OR a_prop IS NULL)
AND (b_prop = 'blah' OR b_prop IS …
Run Code Online (Sandbox Code Playgroud)

postgresql join syntax

3
推荐指数
1
解决办法
3927
查看次数

创建根据枚举值插入行的触发器?

我对触发器很陌生,我遇到了一般问题。我想实现这一目标:

CREATE TABLE `searcharticles` (
 `articleID` int(11) unsigned NOT NULL,
 `ean` char(13) COLLATE utf8_unicode_ci DEFAULT NULL,
 `manufacturerNumber` varchar(20) COLLATE utf8_unicode_ci NOT NULL,  
 PRIMARY KEY (`articleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


CREATE TABLE `addresses` (
 `articleID` int(11) unsigned NOT NULL,
 `shop` enum('shop1','shop2') COLLATE utf8_unicode_ci NOT NULL,
 `url` varchar(255) COLLATE utf8_unicode_ci NULL,
 `status` tinyint(3) NOT NULL DEFAULT '0',
 `createTime` datetime NOT NULL,
 `updateTime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`articleID`,`shop`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
Run Code Online (Sandbox Code Playgroud)

searcharticles 中插入新行时,应填充表 …

mysql trigger syntax

2
推荐指数
1
解决办法
1839
查看次数

获取现有表语法的 SQL 查询

是否有任何SQL查询可以获取 MySql 数据库中现有表的语法?

意图: 我处于使用数据库的早期阶段,我正在使用 MySql 工作台来创建表并在需要时更新它们。在某些时候,在某些情况下,我希望拥有表格现在持有的语法,以便记录它或将其粘贴到 StackOverflow 之类的论坛中(期望我可以显示所有约束,实际上是表上的外键约束以一种简单的方式)。

请让我知道是否有任何解决方法。

mysql syntax

2
推荐指数
1
解决办法
7979
查看次数

create table 语句中的“#”是什么?

我最近看到一个这样的声明:

CREATE TABLE #tbl_AR_Data
Run Code Online (Sandbox Code Playgroud)

我想知道这个语句中符号#数字符号哈希、英镑符号)的用途是什么?

mysql sql-server syntax table

2
推荐指数
1
解决办法
781
查看次数

这个别名指的是哪一列?

我已经阅读了几次以下代码,试图弄清楚它在做什么。

“右外连接是将右表中不匹配的行与左表中的匹配行一起返回。”

好的,但是"item_cnt"表中不存在该列,那么它作为别名使用的是哪一列?我正在为 1z0-047 做准备,所以任何帮助将不胜感激。


您执行了以下查询以显示PRODUCT_NAME产品的订购次数:

SELECT p.product_name, i.item_cnt
FROM (SELECT product_id, COUNT (*) item_cnt
FROM order_items
GROUP BY product_id) i RIGHT OUTER JOIN products p ON i.product_id = p.product_id;
Run Code Online (Sandbox Code Playgroud)

我认为该列应该存在。但这里是包含所有示例架构的 Oracle 文档页面。如果我用 ctrl+f for 搜索item_cnt,我什么也没找到:Oracle example schemas

oracle join syntax

2
推荐指数
1
解决办法
169
查看次数