sql—复合键,其中一个组件是外键

whlutmcx  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(388)

我有一个金融应用程序,我每天都存储股票数据,所以我从 Ticker 以及 Date .
我还需要 Ticker (这是上述复合键的一部分)另一个表的外键,称为 Tickers .
但是,当我在SQLServerManagementStudio中添加外键关系时,它要求我为这两个列提供链接 Ticker 以及 Date ,而ticker表只包含 Ticker (这是我只想绑定的内容)。
你知道我做错了什么吗?这是不可能的吗?
我的表格如下:

  1. CREATE TABLE [dbo].[Tickers](
  2. [Ticker] [nvarchar](8) NOT NULL,
  3. [Name] [nvarchar](50) NOT NULL,
  4. [Market] [int] NOT NULL,
  5. [Locale] [int] NOT NULL,
  6. [Type] [int] NOT NULL,
  7. [Active] [bit] NOT NULL,
  8. [PrimaryExch] [nvarchar](50) NOT NULL,
  9. [Updated] [datetime2](7) NOT NULL,
  10. [Currency] [int] NOT NULL,
  11. CONSTRAINT [PK_Tickers] PRIMARY KEY CLUSTERED
  12. (
  13. [Ticker] ASC
  14. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  15. ) ON [PRIMARY]
  16. GO
  17. CREATE TABLE [dbo].[AggregateDay](
  18. [Ticker] [nchar](8) NOT NULL,
  19. [Date] [date] NOT NULL,
  20. [Volume] [decimal](18, 0) NULL,
  21. [Open] [decimal](18, 0) NULL,
  22. [Close] [decimal](18, 0) NULL,
  23. [High] [decimal](18, 0) NULL,
  24. [Low] [decimal](18, 0) NULL,
  25. [Samples] [int] NULL,
  26. CONSTRAINT [PK_AggregateDay] PRIMARY KEY CLUSTERED
  27. (
  28. [Ticker] ASC,
  29. [Date] ASC
  30. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  31. ) ON [PRIMARY]
  32. GO

mepcadol

mepcadol1#

设置中的一个问题是父列和子列的数据类型不同: [dbo].[Tickers]([Ticker])[nvarchar](8) ,而 [dbo].[AggregateDay](Ticket)[nchar](8) .
如果将两种数据类型对齐,则可以创建关系,如下所示:

  1. CREATE TABLE [dbo].[AggregateDay](
  2. [Ticker] [nvarchar](8) NOT NULL
  3. REFERENCES [dbo].[Tickers]([Ticker]), -- foreign key declaration
  4. [Date] [date] NOT NULL,
  5. [Volume] [decimal](18, 0) NULL,
  6. [Open] [decimal](18, 0) NULL,
  7. [Close] [decimal](18, 0) NULL,
  8. [High] [decimal](18, 0) NULL,
  9. [Low] [decimal](18, 0) NULL,
  10. [Samples] [int] NULL,
  11. CONSTRAINT [PK_AggregateDay] PRIMARY KEY CLUSTERED
  12. ([Ticker] ASC, [Date] ASC)
  13. WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
  14. ON [PRIMARY]
  15. ) ON [PRIMARY]

db小提琴演示

展开查看全部

相关问题