psql调用sql脚本前,如何传递参数给sql,在sql中又如何获取到psql命令行设定的参数?
时间: 2024-09-29 07:13:35 浏览: 53
在`psql`中,如果你想在执行SQL脚本之前传递参数并从SQL中访问这些参数,你可以使用`-v`选项来设置变量,然后在SQL查询中通过双美元符号`$$`来引用它们。这是一个例子:
1. **设置参数**:
```bash
psql -U your_user -d your_database -v name=John -v age=30
```
这里设置了两个变量:`name`和`age`。
2. **在SQL中使用参数**:
编写一个接受这些变量的SQL脚本,如:
```sql
SELECT '@name' AS name_value, '@age' AS age_value;
```
注意这里的`@name`和`@age`就是你在`psql`命令行设置的变量名。
3. **执行带参数的SQL**:
```bash
psql -f your_script.sql
```
当你运行这个脚本时,`your_script.sql`会读取这些预设的变量并在查询中使用它们。比如如果脚本是这样:
```sql
set @input_name = $$name$$;
set @input_age = $$age$$;
SELECT @input_name, @input_age;
```
执行后,结果将是`('John', '30')`(假设传递的是`John`和`30`)。
阅读全文