SQLite3PRAGMA FOREIGN_KEYS = OFF
默认设置。当然,这会引发问题。
我知道我可以通过将命令放入 中来永久打开 PRAGMA ~/.sqliterc
,但问题是它会影响 SQLite3 的每次调用,而不仅仅是我自己的。这可能会导致其他已安装的脚本出现意外结果。因此,我想避免使用~/.sqliterc
.
请注意,我在 Bash 脚本中使用 SQLite3(不是从终端输入)。
解决这个问题的一种方法是记住在每次调用 SQLite3 时需要添加 PRAGMA,例如
sqlite3 -cmd 'PRAGMA FOREIGN_KEYS = ON' example.db <<-END_CMD
...
END_CMD
(我可以找到其他更加混乱的方法。)
这样做的问题是很容易忘记,尤其是在维护旧代码时。
那么,有没有一种方法可以“暂时永久”打开它,我的意思是在脚本的整个持续时间内打开它?例如,我想知道是否可以将其放入环境变量中,例如
export PRAGMA_FOREIGN_KEYS=ON # This doesn't work.
或类似的东西。
有没有办法做到这一点,或者使用-cmd
最简单的方法?
答案1
sqlite3pragma()
{
sqlite3 -cmd 'PRAGMA FOREIGN_KEYS = ON' "$@"
}
sqlite3pragma example.db <<-END_CMD
...
END_CMD