下载最新预览版
C:\d>wget https://artifacts.duckdb.org/latest/duckdb-binaries-linux-amd64.zip -O duckdb-binaries-linux-amd64-0627.zip
duckdb-binaries-linux-amd64-0 100%[=================================================>] 87.92M 813KB/s in 2m 33s
2026-06-27 08:48:37 (590 KB/s) - 'duckdb-binaries-linux-amd64-0627.zip' saved [92187076/92187076]
C:\d>wsl
root@DESKTOP-59T6U68:/mnt/c/d# ./duckdb0626
DuckDB v1.6.0-dev9687 (Development Version, d9fdc2f20b)
Enter ".help" for usage hints.
memory D
root@DESKTOP-59T6U68:/mnt/c/d# exit
logout
下面用windows的同样版本测试,预览版缺少插件
C:\d>duckdb0626
DuckDB v1.6.0-dev9687 (Development Version, d9fdc2f20b)
Enter ".help" for usage hints.
memory D install rusty_sheet from community;
HTTP Error:
Failed to download extension "rusty_sheet" at URL "http://community-extensions.duckdb.org/d9fdc2f20b/windows_amd64/rusty_sheet.duckdb_extension.gz" (HTTP 404)
Candidate extensions: "vss", "unity_catalog", "sqlite_scanner", "postgres_scanner", "sqlite"
For more info, visit https://duckdb.org/docs/current/extensions/troubleshooting?version=d9fdc2f20b&platform=windows_amd64&extension=rusty_sheet
https://blobs.duckdb.org/events/duckcon7/hannes-muehleisen-mark-raasveldt-duckcon7-state-of-the-duck.pdf 幻灯片中提到的两个功能
触发器,审计插入和删除
memory D CREATE TABLE target (id INTEGER);
memory D CREATE TABLE audit (id INTEGER);
memory D CREATE TRIGGER t
AFTER INSERT ON target
FOR EACH ROW INSERT INTO audit VALUES (NEW.id);
memory D insert into target select 1;
memory D from audit;
┌───────┐
│ id │
│ int32 │
├───────┤
│ 1 │
└───────┘
memory D CREATE TRIGGER t1
AFTER DELETE ON target
FOR EACH ROW INSERT INTO audit VALUES (OLD.id);
memory D delete from target where id=1;
memory D from audit;
┌───────┐
│ id │
│ int32 │
├───────┤
│ 1 │
│ 1 │
└───────┘
variant 数据类型,可以插入任意其他类型的值,比如json、字符串、数值型。
memory D CREATE TABLE variant_table (j VARIANT);
memory D INSERT INTO variant_table VALUES (JSON '{"hello":"world", "best_number": 42}');
memory D FROM variant_table;
┌─────────────────────────────────────┐
│ j │
│ variant │
├─────────────────────────────────────┤
│ {'hello': world, 'best_number': 42} │
└─────────────────────────────────────┘
memory D FROM variant_table select j::json;
┌────────────────────────────────────┐
│ CAST(j AS "json") │
│ json │
├────────────────────────────────────┤
│ {"hello":"world","best_number":42} │
└────────────────────────────────────┘
memory D
memory D INSERT INTO variant_table VALUES ('varchar');
memory D INSERT INTO variant_table VALUES (100);
memory D from variant_table;
┌─────────────────────────────────────┐
│ j │
│ variant │
├─────────────────────────────────────┤
│ {'hello': world, 'best_number': 42} │
│ varchar │
│ 100 │
└─────────────────────────────────────┘
memory D from variant_table select j where j=100;
┌─────────┐
│ j │
│ variant │
├─────────┤
│ 100 │
└─────────┘
memory D from variant_table select j where j='varchar';
┌─────────┐
│ j │
│ variant │
├─────────┤
│ varchar │
└─────────┘