插入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