Ошибка типа данных SQL: невозможно ввести символы в столбец таблицы SQL - PullRequest
0 голосов
/ 16 мая 2018
mysql> insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,P);
ERROR 1054 (42S22): Unknown column 'P' in 'field list'

Приведенная выше команда работает, если я введу целое число вместо символа Смотри:

mysql> insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,43);
Query OK, 1 row affected (0.02 sec)

mysql> select * from oee;
+-------+------+------------+----------+----------+
| ID_NO | S_NO | START_TIME | END_TIME | PASSFAIL |
+-------+------+------------+----------+----------+
|    16 | 1233 | 00:23:23   | 00:01:23 | 2323     |
|    23 | 35   | 00:00:43   | 00:02:34 | 234      |
|    67 | 85   | 34:56:43   | 34:56:33 | 43       |
+-------+------+------------+----------+----------+
3 rows in set (0.00 sec)

Итак, я проверил, является ли тип данных столбца целым числом, и обнаружил, что с типом данных проблем не было. Вот как я узнал о типе данных:

mysql> SELECT DATA_TYPE
    -> FROM INFORMATION_SCHEMA.COLUMNS
    -> WHERE
    ->      TABLE_NAME = 'OEE' AND COLUMN_NAME = 'PASSFAIL';
+-----------+
| DATA_TYPE |
+-----------+
| char      |
+-----------+
1 row in set (0.00 sec)

Сообщение об ошибке:

ОШИБКА 1054 (42S22): неизвестный столбец «P» в «списке полей»

Что не так?

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Поместите одинарные кавычки вокруг P. Если вы вставляете символы, вы должны поместить их в одинарные кавычки.

До:

insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,P);

После того, как:

insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,'P');

0 голосов
/ 16 мая 2018

Здесь вы использовали p вместо 'P' при вставке данных в вашу таблицу.Если нет переменной, которую вы объявили как P, вы не можете использовать P для запроса вставки.Вот почему вы можете вставить 43 в качестве данных.Если вы хотите вставить P в вашу таблицу, используйте следующий запрос:

insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,'P');

0 голосов
/ 16 мая 2018

Я не очень разбираюсь в SQL, но поскольку столбец имеет тип char, возможно, попробуйте заключить в кавычки значение.

insert into oee (ID_NO,S_NO,START_TIME,END_TIME,PASSFAIL) VALUES (67,85,345643,345633,'P');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...