我是 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 本身变成与上面发布的相同的错误消息。
你能在一个 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)
任何人都可以指出我明确指出可以或不能使用一个查询创建多个表的参考吗?
在审查我们的一些代码时,一位同事认为,TRUNCATE TABLE当TRUNCATE.
谷歌搜索这个,我确实找不到TABLE需要该部分的具体原因。
我错过了什么?TABLEin 有TRUNCATE TABLE什么历史原因吗?
我有一个相对复杂的查询,其子查询获取一个数组,如下所示:
...
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子句中会产生预期的结果。
是否可以写成 (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()只填写一项的最佳选择是什么?
这里有一些可以使用的数据:
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) 我对触发器很陌生,我遇到了一般问题。我想实现这一目标:
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 中插入新行时,应填充表 …
是否有任何SQL查询可以获取 MySql 数据库中现有表的语法?
意图: 我处于使用数据库的早期阶段,我正在使用 MySql 工作台来创建表并在需要时更新它们。在某些时候,在某些情况下,我希望拥有表格现在持有的语法,以便记录它或将其粘贴到 StackOverflow 之类的论坛中(期望我可以显示所有约束,实际上是表上的外键约束以一种简单的方式)。
请让我知道是否有任何解决方法。
我已经阅读了几次以下代码,试图弄清楚它在做什么。
“右外连接是将右表中不匹配的行与左表中的匹配行一起返回。”
好的,但是"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。