tcb db execute
在 PG 模式或 MySQL 环境中执行一条 SQL 语句,返回结果集。两种模式的参数不同。
版本
PG 模式的 tcb db execute 自 v3.4.0 起提供。
语法
tcb db execute --sql '<sql>' [options]
PG 模式参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
-s, --sql <sql> | 是 | 要执行的 SQL 语句 | — |
--role <role> | 否 | 执行 SQL 的角色,可指定有效的自定义角色 | — |
-e, --env-id <envId> | 是 | 环境 ID | — |
--json | 否 | 以 JSON 格式输出结果 | — |
PG 模式示例
# 基础查询
tcb db execute -e <envId> --sql "SELECT 1"
# 查询 Storage bucket 列表
tcb db execute -e <envId> --sql "SELECT name, public FROM storage.buckets ORDER BY created_at"
# 用自建的只读角色执行查询,防止误操作
tcb db execute -e <envId> --role <readonly_role> --sql "SELECT name, public FROM storage.buckets"
# 创建 Storage bucket
tcb db execute -e <envId> --sql "INSERT INTO storage.buckets (id, name, public, created_at, updated_at) VALUES ('avatars', 'avatars', false, now(), now())"
MySQL 模式参数
| 参数 | 必填 | 说明 | 默认值 |
|---|---|---|---|
-s, --sql <sql> | 是 | 要执行的 SQL 语句 | — |
--readOnly | 否 | 以只读模式执行(适合查询,防止误操作) | false |
--instanceId <id> | 否 | 实例 ID(多实例时指定) | — |
-e, --env-id <envId> | 否 | 环境 ID | — |
--json | 否 | 输出 JSON | — |
# 查询(只读模式)
tcb db execute --sql 'SELECT * FROM users LIMIT 10' --readOnly -e my-env-id
# 写入操作
tcb db execute --sql "INSERT INTO orders (user_id, amount) VALUES (1, 99.9)" -e my-env-id
# 查询指定实例
tcb db execute --sql 'SHOW TABLES' --instanceId inst-xxx --readOnly -e my-env-id
注意事项
--role可指定应用角色anon、authenticated或自定义角色。只读执行需使用已限制写入权限的角色- 平台保留角色不对用户开放,直接指定可能报权限错误
42501 - 语句在服务端直接执行,没有本地预览步骤;改动数据前先用查询确认影响范围
- 文档型数据库不走本命令,用
tcb db nosql execute