【问题标题】:INSERT values to MySQL将值插入 MySQL
【发布时间】:2012-07-24 21:51:32
【问题描述】:

如果我的 SQL 创建语句如下;

CREATE TABLE TABLENAME12
(
  TAB_ID INT NOT NULL AUTO_INCREMENT,
  NAME_FIRST NVARCHAR(200),
  TYPE NVARCHAR(200),
  PRIMARY KEY( TAB_ID )
);

如果我想向其中插入值,我是否也应该输入 TAB_ID ?因为它是自动递增的。

当我 INSERT INTO SWM_SALES_FEEDBACK VALUES (1,'Jerry','ty'); 如果我没有指定主键 INSERT INTO SWM_SALES_FEEDBACK VALUES ('Jerry','ty'); 它被插入我得到以下错误:

ERROR 1136 (21S01): Column count doesn't match value count at row 1

1.) 如果 AUTO_INCREMENT 没有自动递增,那么它的意义何在。 2.) 如果我有一个名为:

BIRTH_TIME DATE,

既然它是DATE 类型,我应该如何向该字段插入值

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    1) 您必须遵守表格中列的顺序。你可以这样做:

    INSERT INTO SWM_SALES_FEEDBACK VALUES (null, 'Jerry','ty');
    

    INSERT INTO SWM_SALES_FEEDBACK (NAME_FIRST, TYPE) VALUES ('Jerry','ty');
    

    2) 日期列可以使用 '2012-07-24' 格式。

    【讨论】:

      【解决方案2】:

      使用自动增量,您需要指定列

      INSERT INTO tablename12 ('name_first','type') values ('Jerry','ty')
      

      【讨论】:

        【解决方案3】:

        如果您不插入每一列,则需要告诉查询您要插入哪些列。试试INSERT INTO SWM_SALES_FEEDBACK (NAME_FIRST,TYPE) VALUES ('Jerry','ty');

        【讨论】:

          【解决方案4】:

          不确定 mysql 在新版本中是否有 to_date() 函数:

          但是,您可以这样使用:只需将日期时间字段用单引号括起来。您可以指定日期时间格式

            INSERT INTO table_name (birth_date) VALUES ('2008-07-04')
          

          有关其他日期格式问题,请参阅this

          为您的自动增量,指定列

          INSERT INTO SWM_SALES_FEEDBACK (NAME_FIRST,TYPE) VALUES ('Jerry','ty'); 
          

          【讨论】:

            【解决方案5】:

            Point 1

            如果您不想将所有字段存储在 DB 中,则必须在 VALUES 子句之前指定这些列名,如下所示。

            INSERT INTO myTable (field2,field3) VALUES ('field2','field3')
            

            在你的情况下,声明应该是

            INSERT INTO SWM_SALES_FEEDBACK (name_first, type) VALUES ('Jerry','ty')
                                           ^^^^^^^^^^^^^^^^^^
            

            Point 2

            如果字段为 DATETIME,TIMESTAMP 为数据类型,则可以输入日期为

            INSERT INTO myTable (myDate) VALUES ('2012-12-28 12:12:12')
            

            格式为yyyy-mm-dd hh:mm:ss

            如果要将系统的当前时间存储在数据库中,可以使用NOW(),如下所示。

            INSERT INTO myTable (myDate) VALUES (NOW())
            

            【讨论】:

              【解决方案6】:

              试试下面的代码

              INSERT INTO SWM_SALES_FEEDBACK (NAME_FIRST,TYPE) VALUES ('Jerry','ty'); 
              

              【讨论】:

                猜你喜欢
                • 2020-07-15
                • 1970-01-01
                • 1970-01-01
                • 2012-11-09
                • 2011-07-29
                • 2019-04-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多