我有数据库表AllowedFields
,其中包含以下列:
ID int
Name Varchar(50)
FieldRecord Decimal(7,2)
我正在尝试使用以下查询插入演示记录:
set term ^ ;
EXECUTE BLOCK AS BEGIN
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ("A", 0.00);
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ("E", 13.00);
END^
但我收到此错误消息:
Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -206
Column unknown
A
At line 3, column 37
很明显,firebird将此A
值视为列值?
如何更改此脚本以插入记录。感谢。
答案 0 :(得分:1)
SQL标准定义了双引号来表示标识符(表名,列名,约束名,......)。因此"A"
标识名为A
的列,而不是单个字符。
字符串文字必须用SQL括在单引号中。因此,您需要使用'A'
来表示字符串(字符)文字。
将这些放在一起你需要:
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ('A', 0.00);
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ('E', 13.00);
您还应该知道标准要求引用的名称区分大小写,因此"A"
与"a"
不同。
Firebird遵循标准。