【问题标题】:How to insert records into a table using Sequel如何使用 Sequel 向表中插入记录
【发布时间】:2017-04-19 00:25:40
【问题描述】:

这是我在简单的“系列”表中插入几行的代码:

db = sequel.postgres(config['dbname'],:user=>config['user'],:password=>config['password'],:host=>config['host'],:port=>config['port'],:max_connections=>10)
@db.create_table? 'series' do
        primary_key "series_id" , :autoincrement=>true
        String "series_name"
    end
seriesDS = db['series']
seriesDS.insert('series_name' => 'test_value')

seriesDS.insert 我收到了一个

Sequel::DatabaseError - PG::SyntaxError: ERREUR:  erreur de syntaxe sur ou près de « series » 

我没有设法在 STDOUT 中获取 analysys 的完整 SQL 查询。这很奇怪,因为我添加了这个:

logger = Logger.new STDOUT
    logger.level = Logger::DEBUG
    db.loggers << logger

它似乎生成了错误的 SQL,但我不知道错误的来源。

我正在使用:

  • Ruby 2.2.5
  • 续集 4.4.1
  • Postgresql 9.6

使用ruby -E utf8启动程序。

【问题讨论】:

    标签: ruby postgresql sequel


    【解决方案1】:

    Sequel 使用 Ruby 符号来表示 SQL 标识符。至少,您必须使用seriesDS = db[:series]

    在其他需要 SQL 标识符的情况下,您可能应该从使用字符串切换到符号。

    【讨论】:

    • 自从这个问题以来,我发现了更多的红宝石,我知道符号是一个更好的方法。但是,如果符号是强制性语法,为什么创建表可以工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2018-11-28
    相关资源
    最近更新 更多