Как вставить значение в SQL в любом месте? - PullRequest
0 голосов
/ 15 апреля 2011

Я не могу вставить значение, используя этот код:

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

ошибка msg

no primary key

Ответы [ 6 ]

6 голосов
/ 15 апреля 2011

Ваш запрос неправильный, он должен быть:

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);

без первичного ключа

При вставке при указании вставки в несколько столбцов вместо всех в таблице необходимо включить первичный ключ.Это означает, что в вашем CategoryCode, CategoryValueCode, CategoryValue должен быть первичным ключом или включать четвертый столбец, который является первичным ключом в таблице.

3 голосов
/ 15 апреля 2011

Попробуйте это ( отредактировано , потому что вы используете 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, а другие - нет.

3 голосов
/ 15 апреля 2011
insert into `DBA`.`t_category_values` (`CategoryCode`, `CategoryValueCode`, `CategoryValue`) values(1, 1, "aaa");
2 голосов
/ 15 апреля 2011

INSERT выглядит следующим образом:

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`;
1 голос
/ 15 апреля 2011

Вставить запрос, например: -

Insert into `tableName`(field1, field2, field3) values ('value1', 'value2', 'value3');
0 голосов
/ 05 февраля 2013

Вы получаете сообщение об ошибке «Нет первичного ключа», поскольку вы не указали действительный уникальный первичный ключ.

Ваша таблица должна быть 4 столбца.

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

Единственный раз, когда вам не нужно указывать столбец первичного ключа, это когда первичный ключ является значением автоинкремента. Если это столбец с автоинкрементом, INSERT автоматически заполнит это значение, и вам не нужно об этом беспокоиться.

...