插入sql查询非工作列未定义

插入sql查询非工作列未定义,sql,ruby,postgresql,pg,Sql,Ruby,Postgresql,Pg,当我运行第一个函数时,它工作,当我运行第二个函数时,我得到一个错误: def self.create_tables connection = PG.connect(dbname: 'clients') connection.exec('CREATE TABLE client_details ( Company_ID SERIAL PRIMARY KEY, Company_Name text,

当我运行第一个函数时,它工作,当我运行第二个函数时,我得到一个错误:

def self.create_tables
  connection = PG.connect(dbname: 'clients')
  connection.exec('CREATE TABLE client_details (
                Company_ID SERIAL PRIMARY KEY,
                Company_Name text,
                Company_Telephone text,
                Company_Representitive text,
                Company_Email text,
                Company_Address text,
                Company_Contract_Start_Date text,
                Company_Contract_End_Date text
                )')
end
def self.create_table_data
  connection = PG.connect(dbname: 'clients')
  connection.exec('INSERT INTO client_detail (
  Company_Name,
  Company_Telephone,
  Company_Representitive,
  Company_Email,
  Company_Address,
  Company_Contract_Start_Date,
  Company_Contract_End_Date) 
  VALUES (
  "Monoprix", 
  "1234", 
  "sarah", 
  "dan@dan.com", 
  "this road", 
  "12", 
  "13");')
end
我不知道为什么当我试图将值“monoprix”插入列Company_Name而不是“monoprix”时,错误告诉我“monoprix”列不存在

但是,当我插入值1,2,3,4,5,6,7时,效果很好

我被难住了


我想在“公司名称”列中插入“monoprix”。

您的错误来自字符串中的引号。根据Mike的回答,您需要使用反斜杠来分隔它们,或者使用字符串中的单斜杠和双斜杠来分隔字符串本身,正如我在下面所做的那样。请尝试再次使用单引号替换它们:'

你试过这个吗:

def self.create_tables
  connection = PG.connect(dbname: 'clients')
  connection.exec('CREATE TABLE client_details (
                Company_ID SERIAL PRIMARY KEY,
                Company_Name text,
                Company_Telephone text,
                Company_Representitive text, 
                    Company_Email text,
                Company_Address text,
                Company_Contract_Start_Date text,
                Company_Contract_End_Date text
                )')
end
def self.create_table_data
  connection = PG.connect(dbname: 'clients')
  connection.exec("INSERT INTO client_detail (
  Company_Name,
  Company_Telephone,
  Company_Representitive,
  Company_Email,
  Company_Address,
  Company_Contract_Start_Date,
  Company_Contract_End_Date) 
  VALUES (
  'Monoprix', 
  '1234', 
  'sarah', 
  'dan@dan.com', 
  'this road', 
  '12', 
  '13');")
end

看起来很愚蠢,但必须勾选所有明显的框。

您使用双引号而不是单引号来分隔字符串。我们必须同时提交。请尝试上面的方法,但字符串中有转义字符。在我最新的编辑中更正了这一点,外部分隔符使用double,内部分隔符使用single。谢谢Barry Piccinni和@MikeBron。我最终和巴里一起去了,因为这是一种“整洁”的方式,有很多背部割伤,但两种方式都奏效了。谢谢,伙计们。谢谢,我同意巴里的解决方案,但你们的也行。谢谢
def self.create_tables
  connection = PG.connect(dbname: 'clients')
  connection.exec('CREATE TABLE client_details (
                Company_ID SERIAL PRIMARY KEY,
                Company_Name text,
                Company_Telephone text,
                Company_Representitive text, 
                    Company_Email text,
                Company_Address text,
                Company_Contract_Start_Date text,
                Company_Contract_End_Date text
                )')
end
def self.create_table_data
  connection = PG.connect(dbname: 'clients')
  connection.exec("INSERT INTO client_detail (
  Company_Name,
  Company_Telephone,
  Company_Representitive,
  Company_Email,
  Company_Address,
  Company_Contract_Start_Date,
  Company_Contract_End_Date) 
  VALUES (
  'Monoprix', 
  '1234', 
  'sarah', 
  'dan@dan.com', 
  'this road', 
  '12', 
  '13');")
end
def self.create_tables
  connection = PG.connect(dbname: 'clients')
  connection.exec('CREATE TABLE client_details (
                Company_ID SERIAL PRIMARY KEY,
                Company_Name text,
                Company_Telephone text,
                Company_Representitive text,
                Company_Email text,
                Company_Address text,
                Company_Contract_Start_Date text,
                Company_Contract_End_Date text
                )')
end
def self.create_table_data
  connection = PG.connect(dbname: 'clients')
  connection.exec('INSERT INTO client_detail (
  Company_Name,
  Company_Telephone,
  Company_Representitive,
  Company_Email,
  Company_Address,
  Company_Contract_Start_Date,
  Company_Contract_End_Date) 
  VALUES (
  \'Monoprix\', 
  \'1234\', 
  \'sarah\', 
  \'dan@dan.com\', 
  \'this road\', 
  \'12\', 
  \'13\');')
end