日程表有五列游戏日,oppoent,scoredifference,得分,对手得分。 scoredifference是生成列。 我试图插入日程表,它给我错误#1136;
insert into schedule values('2017-02-01','atlanta falcons',14,7);
答案 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);