【问题标题】:Truncate table with sqlkorma使用 sqlkorma 截断表
【发布时间】:2016-09-13 17:48:11
【问题描述】:

我只是无法让查询简单地截断表以使用 korma:

(korma.core/defentity readings)
(korma.core/exec-raw ["TRUNCATE TABLE ?" [:name readings]]) 

我得到:

Syntax error in SQL statement "TRUNCATE TABLE ?[*]"; expected "identifier"; SQL statement:
TRUNCATE TABLE ? [42001-191]

【问题讨论】:

  • 一般情况下不能在表名位置使用绑定变量。
  • 和类似的东西 (k/exec-raw (str "TRUNCATE TABLE " (:name readings)) ) 会在这里工作吗?我真的不想为这个简单的查询添加另一个库。
  • 我认为它会起作用。自己试试吧。由于truncate是一个DDL,我想不会被频繁调用,使用动态SQL不会有任何问题。

标签: sql clojure korma sqlkorma


【解决方案1】:

正如其中一位 cmets 所建议的,绑定参数替换仅适用于 DML 中的值,而不适用于 DML 或 DDL 中的模式。这是语义上的区别,而不是句法上的区别。

(k/exec-raw (str ...))

form 应该可以工作,即使使用空参数 vec 也可能无法使用向量形式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 2021-04-10
    • 2011-08-23
    • 2012-01-21
    • 2020-12-12
    相关资源
    最近更新 更多