我正在尝试制作考勤软件。我有一张这样的桌子:
ID | time present | date |
0000001 | 07.00 | january, 1, 2014 |
如果我输入此值,则无法在表中插入,因为ID
是主键:
0000001 | 07.00 | january, 2, 2014 |
我需要我的表可以插入当前id但在datetime值上不同,如下所示:
0000001 | 07.00 | january, 1, 2014 |
0000001 | 07.15 | january, 2, 2014 |
请帮我解决这个问题。
答案 0 :(得分:1)
ID列不应该是主键。这可能是与会者的身份吗?相应地重命名它。 然后添加另一个PK,也许是身份。
答案 1 :(得分:0)
我假设id是主键,您需要在表中添加其他键。您应该添加一个辅助密钥,例如项目计数,对于具有相同ID的每个附加项目,它将为0,1,2,3 ....
ID Item Count
0000001 | 0 | 07.00 | january, 1, 2014 |
0000001 | 1 | 07.15 | january, 2, 2014 |
以下是完整的示例 表创建脚本
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TestExample](
[ID] [int] NOT NULL,
[ItemCount] [int] NOT NULL,
[TimePresent] [time](7) NOT NULL,
[Date] [date] NOT NULL,
CONSTRAINT [PK_TestExample] PRIMARY KEY CLUSTERED
(
[ID] ASC,
[ItemCount] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
插入SQL语句
Insert into [TestExample] (ID, ItemCount, TimePresent, Date)
values ( 1, 1, '7:00', '2013-01-01'),
( 1, 2, '7:15', '2013-01-01')
答案 2 :(得分:0)