如何在SQL中的任何位置插入一个值?

时间:2011-04-15 06:41:54

标签: sql sqlanywhere

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

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

错误消息

no primary key

6 个答案:

答案 0 :(得分:6)

您的查询错误应该是:

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

请点击此处获取更多帮助:Sql Insert Wiki


修改

您的查询和错误:

  

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

     

没有主键

在insert中指定插入少数列而不是表中的所有列时,必须包含主键。这意味着在您的CategoryCode,CategoryValueCode之一,CategoryValue应该是主键或包括作为表中主键的第四列。

答案 1 :(得分:3)

insert into `DBA`.`t_category_values` (`CategoryCode`, `CategoryValueCode`, `CategoryValue`) values(1, 1, "aaa");

答案 2 :(得分:3)

尝试此操作(已编辑,因为您使用的是Sybase SQL Anywhere):

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

<强>编辑:
来自Sybase web page: 向表中添加行

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

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

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

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

答案 3 :(得分:2)

INSERT是这样的:

INSERT INTO `DBA`.`t_category_values`
(CategoryCode, CategoryValueCode, CategoryValue) 
VALUES (1, 1, "aaa");
  1. 表名周围没有“双引号”,允许反引号。 DBA是数据库,t_category_values是表。
  2. 为要填充的列命名
  3. 添加'值',然后添加这些列的值。
  4. 如果要从另一个表插入数据,请使用SELECT:

    INSERT INTO `DBA`.`t_category_values`
    (CategoryCode, CategoryValueCode, CategoryValue) 
    SELECT (CategoryCode, CategoryValueCode, CategoryValue) 
    FROM `DBA`.`old_category_values`;
    

答案 4 :(得分:1)

插入查询,例如: -

Insert into `tableName`(field1, field2, field3) values ('value1', 'value2', 'value3');

答案 5 :(得分:0)

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

您的桌子必须是4列。

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

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