0

我无法使用此代码插入值:

 insert into t_category_values (CategoryCode,
 CategoryValueCode, CategoryValue) values(2, 1, 1);

错误信息

no primary key
4

6 回答 6

6

您的查询是错误的,应该是:

INSERT INTO `DBA`.`t_category_values` 
(CategoryCode, CategoryValueCode, CategoryValue)
VALUES(1, 1, "aaa");

有关更多帮助,请参见此处:Sql Insert Wiki


编辑:

您的查询和错误:

插入 t_category_values (CategoryCode, CategoryValueCode, CategoryValue) values(2, 1, 1);

没有主键

在插入时指定插入几列而不是表中的全部,您必须包含主键。这意味着在您的 CategoryCode、CategoryValueCode、CategoryValue 之一中应该是主键或在表中包含作为主键的第四列。

于 2011-04-15T06:43:39.180 回答
3
insert into `DBA`.`t_category_values` (`CategoryCode`, `CategoryValueCode`, `CategoryValue`) values(1, 1, "aaa");
于 2011-04-15T06:47:05.453 回答
3

试试这个(编辑,因为你使用 Sybase SQL Anywhere):

INSERT INTO dba.t_category_values
(CategoryCode, CategoryValueCode, CategoryValue)
VALUES(1, 1, 'aaa');

已编辑:
来自Sybase 网页:向表中添加行

假设创建了一个新的东部销售部门,其经理与当前销售部门相同。您可以使用以下 INSERT 语句将此信息添加到数据库中:

 INSERT
 INTO department ( dept_id, dept_name, dept_head_id )
 VALUES ( 220, 'Eastern Sales', 902 )

如果您出错并忘记指定其中一列,SQL Anywhere 会报告错误。

NULL 值是一个特殊值,用于指示某些东西是未知的或不适用的。某些列允许包含 NULL 值,而其他列则不允许。

于 2011-04-15T06:47:42.023 回答
2

插入是这样的:

INSERT INTO `DBA`.`t_category_values`
(CategoryCode, CategoryValueCode, CategoryValue) 
VALUES (1, 1, "aaa");
  1. 表名周围没有“双引号”,允许使用反引号。DBA是数据库,t_category_values是表。
  2. 命名要填充的列
  3. 添加“值”,后跟这些列的值。

如果要从另一个表中插入数据,请使用 SELECT:

INSERT INTO `DBA`.`t_category_values`
(CategoryCode, CategoryValueCode, CategoryValue) 
SELECT (CategoryCode, CategoryValueCode, CategoryValue) 
FROM `DBA`.`old_category_values`;
于 2011-04-15T06:48:18.190 回答
1

插入查询,例如:-

Insert into `tableName`(field1, field2, field3) values ('value1', 'value2', 'value3');
于 2011-04-15T06:54:04.763 回答
0

您收到错误“无主键”,因为您没有指定有效的唯一主键。

您的表格必须是 4 列。

INSERT INTO t_category_values (PRIMARY_KEY, CategoryCode, CategoryValueCode, CategoryValue) 
VALUES(pkey_value_here, 2, 1, 1);

唯一不需要指定主键列的情况是主键是自动递增值。如果它是一个自动增量列,INSERT 将自动为您填写该值,您无需担心。

于 2013-02-05T16:27:33.387 回答