LOOP 语句
适用于 ❌ 开源版 ✅ Express 版 ✅ 专业版 ✅ 企业版
许多过程语言支持无条件循环,它纯粹的形式就是永远循环。为了在表中创建无限数量的记录,可以编写以下内容
-- PL/SQL syntax LOOP INSERT INTO t (col) VALUES (1); END LOOP;
// All dialects loop( insertInto(T).columns(T.COL).values(1) )
loop(update(BOOK_TO_BOOK_STORE).set(BOOK_TO_BOOK_STORE.STOCK, BOOK_TO_BOOK_STORE.STOCK.plus(1)))
翻译成以下特定方言的表达式
Aurora Postgres, CockroachDB, Postgres, Snowflake, YugabyteDB
LOOP
UPDATE BOOK_TO_BOOK_STORE
SET
STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1);
END LOOP
BigQuery
LOOP
UPDATE BOOK_TO_BOOK_STORE
SET
BOOK_TO_BOOK_STORE.STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1)
WHERE TRUE;
END LOOP
DB2, Exasol, HSQLDB, Informix, MariaDB, MySQL, Oracle, Trino
LOOP
UPDATE BOOK_TO_BOOK_STORE
SET
BOOK_TO_BOOK_STORE.STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1);
END LOOP
Firebird
WHILE (1 = 1) DO BEGIN
UPDATE BOOK_TO_BOOK_STORE
SET
BOOK_TO_BOOK_STORE.STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1);
END
H2
for (;;) {
try (PreparedStatement s = c.prepareStatement(
"UPDATE BOOK_TO_BOOK_STORE\n" +
"SET\n" +
" BOOK_TO_BOOK_STORE.STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1)"
)) {
s.execute();
}
}
Hana
WHILE 1 = 1 DO
UPDATE BOOK_TO_BOOK_STORE
FROM BOOK_TO_BOOK_STORE
SET
BOOK_TO_BOOK_STORE.STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1);
END WHILE
SQLDataWarehouse, SQLServer
WHILE 1 = 1 BEGIN
UPDATE BOOK_TO_BOOK_STORE
SET
BOOK_TO_BOOK_STORE.STOCK = (BOOK_TO_BOOK_STORE.STOCK + 1);
END
ASE, Access, Aurora MySQL, ClickHouse, Databricks, Derby, DuckDB, MemSQL, Redshift, SQLite, Sybase, Teradata, Vertica
/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!