我需要构建一个数据库,其中一个表存储在一个磁盘上,另一个表存储在另一个磁盘(ramdisk)上。
有可能做到吗?
据我所知,使用两个单独的数据库,一个磁盘一个,效率不高。
我正在考虑 PostgreSQL,但其他选项也可以。我想用ramdisk的原因是为了处理可以随时删除的非关键数据,避免SSD磨损。
我需要构建一个数据库,其中一个表存储在一个磁盘上,另一个表存储在另一个磁盘(ramdisk)上。
有可能做到吗?
据我所知,使用两个单独的数据库,一个磁盘一个,效率不高。
我正在考虑 PostgreSQL,但其他选项也可以。我想用ramdisk的原因是为了处理可以随时删除的非关键数据,避免SSD磨损。
我无法进行更新查询。作为第一步,以下步骤可以正常工作:
UPDATE Tab1
SET Tab1.a = '3'
WHERE
Tab1.id IN ( 123, 456 );
其中 id 是 Tab1 的主键。
但是,当我添加一个选择以获取 Tab1.id 必须包含的一组值时,我收到以下 MySQL 错误:
错误代码:1093
您不能在 FROM 子句中指定目标表“Tab1”进行更新。
这是完整的查询:
UPDATE Tab1
SET Tab1.a = '3'
WHERE
Tab1.id IN (
SELECT Tab1.id
FROM Tab1, Tab2
WHERE Tab1.b = Tab2.b AND Tab1.c = '4'
);
我看不到如何解决此错误。
我是否被迫将此查询一分为二?
谢谢!
在 MySQL Workbench 中,是否可以在所有表中搜索特定的列名?
(在右上角的字段中写入要查找的字符串不会执行任何操作)。
谢谢你。
使用 MySQL 连接器 C++,sql::Statement::execute()
如果我要修改数据库(INSERT、UPDATE、DELETE、MERGE),我可以使用该函数,sql::Statement::executeQuery()
如果我要执行一个简单的只读查询,我可以使用该函数。
假设我不知道查询中的内容,我该如何选择要做什么?
目前我只是检查查询字符串中是否有任何 INSERT、UPDATE、DELETE 或 MERGE 标记。但这远非完美的方法。
还有另一种方法吗?
当我使用 executeQuery() 修改数据库时,我是否应该忽略 MySQL 返回的警告消息?
谢谢你。