MonetDB 中的 WHILE 查询语法
WHILE query syntax in MonetDB
我正在为 Windows 使用最新版本的 MonetDB,并且我已经在 Windows 7.
上安装了它
大家好,我最近开始研究 MonetDB。最终目标是准备原型来演示 MonetDB 和 SQL Server 之间的查询性能差异。
我已经阅读了 MonetDB SQL 参考文档,但我不清楚应该如何准备 WHILE 查询。
创建 table 查询:
sql>CREATE TABLE TestString ( Name VARCHAR(40) NULL );
声明并设置局部变量:
sql>delcare rowcount;
sql>set rowcount=1;
虽然我试过查询:
sql>WHILE rowcount<1000000
sql>DO
sql>insert TestString Values CAST(uuid() as VARCHAR(50))
sql>set rowcount=rowcount+1
sql>END WHILE
我确实通过指定缩进在 while 查询中尝试了不同的变体
但它仍然不对。
有人可以帮助我获得正确的语法或为我指出任何有用的用户手册吗?
MonetDB 支持大多数标准 SQL-99。 WHILE
是 Microsoft Transact-SQL 的一部分,它不是标准的一部分,在 MonetDB 中也不支持。
按如下方式进行操作:
CREATE TABLE TestString ( Name String NULL );
CREATE PROCEDURE InsertTestString (nrow int)
BEGIN
DECLARE rowcount int;
SET rowcount = 0;
WHILE (rowcount < nrow) DO
INSERT INTO TestString VALUES (uuid());
SET rowcount = rowcount + 1;
END WHILE;
END;
CALL InsertTestString(100);
显然,WHILE 想要包裹在 PROCEDURE
或 FUNCTION
中。今天学到了一些东西...
另一个重要说明:MonetDB 中大量的单个 INSERT
命令不是很快。建议将它们包装在事务中或使用批量加载。
我正在为 Windows 使用最新版本的 MonetDB,并且我已经在 Windows 7.
上安装了它大家好,我最近开始研究 MonetDB。最终目标是准备原型来演示 MonetDB 和 SQL Server 之间的查询性能差异。
我已经阅读了 MonetDB SQL 参考文档,但我不清楚应该如何准备 WHILE 查询。
创建 table 查询:
sql>CREATE TABLE TestString ( Name VARCHAR(40) NULL );
声明并设置局部变量:
sql>delcare rowcount;
sql>set rowcount=1;
虽然我试过查询:
sql>WHILE rowcount<1000000
sql>DO
sql>insert TestString Values CAST(uuid() as VARCHAR(50))
sql>set rowcount=rowcount+1
sql>END WHILE
我确实通过指定缩进在 while 查询中尝试了不同的变体 但它仍然不对。
有人可以帮助我获得正确的语法或为我指出任何有用的用户手册吗?
MonetDB 支持大多数标准 SQL-99。 WHILE
是 Microsoft Transact-SQL 的一部分,它不是标准的一部分,在 MonetDB 中也不支持。
按如下方式进行操作:
CREATE TABLE TestString ( Name String NULL );
CREATE PROCEDURE InsertTestString (nrow int)
BEGIN
DECLARE rowcount int;
SET rowcount = 0;
WHILE (rowcount < nrow) DO
INSERT INTO TestString VALUES (uuid());
SET rowcount = rowcount + 1;
END WHILE;
END;
CALL InsertTestString(100);
显然,WHILE 想要包裹在 PROCEDURE
或 FUNCTION
中。今天学到了一些东西...
另一个重要说明:MonetDB 中大量的单个 INSERT
命令不是很快。建议将它们包装在事务中或使用批量加载。