SQL数据类型错误:无法将字符输入到SQL表的列中

时间:2018-05-16 03:20:19

标签: python mysql sql database

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)

错误信息是:

  

ERROR 1054(42S22):“字段列表”中的未知列“P”

出了什么问题?

3 个答案:

答案 0 :(得分:0)

我不是SQL的专家,但由于该列的类型为char,因此可以尝试在值周围加上引号。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在这里,当您将数据插入表格时,您使用了p而不是'P'。 如果没有变量你声明为P,则不能使用P作为插入查询。 这就是为什么你可以插入43作为数据。 如果要将P插入表中,请使用以下查询。

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