无法在表中插入值,给出错误,列数不匹配

时间:2016-12-15 06:17:49

标签: mysql

日程表有五列游戏日,oppoent,scoredifference,得分,对手得分。 scoredifference是生成列。 我试图插入日程表,它给我错误#1136;

insert into schedule values('2017-02-01','atlanta falcons',14,7);

5 个答案:

答案 0 :(得分:1)

我认为您不应该尝试将值插入到计算列中。相反,当您实际查询表时,将立即计算此列。相反,请尝试指定要尝试插入其数据的四个列名称:

INSERT INTO schedule (gameday, opponent, scoredifference, score)
VALUES
    ('2017-02-01', 'atlanta falcons', 14, 7);

但是......您的值部分包含4列,因此匹配所有字段。

答案 1 :(得分:0)

插入tablename(列列表)值(value-list),如果没有按顺序插入所有列,则需要指定列列表。

答案 2 :(得分:0)

请将scoredifference列的默认值设置为0(或任何您想要的),并尝试以下查询:

insert into schedule(gameday,oppoent,score,opponentscore) values('2017-02-01','atlanta falcons',14,7);

...谢谢

答案 3 :(得分:0)

我认为ScoreDifference不是主键,因此不是自动增量。你可以用这个;

CREATE TABLE [dbo].[Schedule](
    [Scoredifference] [int] IDENTITY(1,1) NOT NULL,
    [Gameday] [datetime] NULL,
    [Oppoent] [nvarchar](50) NULL,
    [Score] [int] NULL,
    [OpponentScore] [nchar](10) NULL,
 CONSTRAINT [PK_Schedule] PRIMARY KEY CLUSTERED 
(
    [Scoredifference] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

然后插入;

插入日程安排值(' 2017-02-01',' atlanta falcons',14,7);

答案 4 :(得分:0)

您的专栏与您的表格不匹配。使用插入查询是一种不好的习惯。只需结帐:

<强> 1。在要插入的值之前使用列名称

insert into schedule(date,city,t1,t2) values ('2017-02-01','atlanta falcons',14,7);

<强> 2。正确匹配列。但这不是正确的插入方式。

insert into schedule values ('','2017-02-01','atlanta falcons',14,7);