【问题标题】:mysql Insert query datatypemysql 插入查询数据类型
【发布时间】:2017-06-28 12:27:26
【问题描述】:

我的表 product_type 包含以下列:ID_TYPE、PRODUCT_NAME、DESCRIPTION、QUANTITY。

插入查询应该是:

Insert into product_type(PRODUCT_NAME, DESCRIPTION, QUANTITY)
values
('Muffin','blahblahblah','1 piece'),
('Cookies','blahblahblah','1 kg');

QUANTITY 列的数据类型为 DECIMAL。我在插入产品数量时遇到问题。我有错误:

3 行受影响,3 个警告:1265 列的数据被截断 第 1 行的“QUANTITY” 1265 行中“QUANTITY”列的数据被截断 2:2 重复:0 警告:2

你有什么解决办法吗?也许我应该只写 1 而不是“1 件”或“1 公斤”。

【问题讨论】:

  • "QUANTITY column has datatype DECIMAL" - 好吧,“1 件”不是十进制值。这是一个字符串。
  • 换句话说,将 '1' 和 'piece'/'kg' 存储在不同的列中
  • 谢谢你们!这是我的第一个数据库,但我仍然在犯错误:) 我用列 ID_QUANTITY 和 TYPE_QUANTITY 再制作了一个表 Quantity。再次感谢!

标签: mysql


【解决方案1】:

正如您所说,如果数量的数据类型是十进制,那么您不能在其中存储 srting。为了存储单位,我建议您创建另一个 char 类型的列 Unit 来存储 Kg 或 Ltr 或 g 等单位。

ID_TYPE, PRODUCT_NAME, DESCRIPTION, QUANTITY.
INSERT QUERY should be:
Insert into product_type(PRODUCT_NAME, DESCRIPTION, QUANTITY, UNIT)
values
('Muffin','blahblahblah',1, 'piece'),
('Cookies','blahblahblah',1 ,'kg');

【讨论】:

    【解决方案2】:

    检查QUANTITY 列的数据类型,我认为它是INTDECIMAL,并且您试图在其中插入一个字符串值1 piece。在这种情况下,过去的整数,即1 与消息一起插入

    第 1 行的“QUANTITY”列的数据被截断

    所以根据datatype插入适当的值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-21
      • 2020-12-25
      • 2016-07-01
      • 1970-01-01
      • 2017-07-03
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多