gpt4 book ai didi

azure - Azure Synapse 中的外部表列不允许使用 NOT NULL

转载 作者:行者123 更新时间:2023-12-03 03:39:19 24 4
gpt4 key购买 nike

我正在 Azure Synapse 中创建外部表。我的数据采用 Parquet 格式并位于数据湖中。

创建一个名为“test”的表

IF NOT EXISTS (SELECT * FROM sys.external_file_formats WHERE name = 'SynapseParquetFormat') 
CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat]
WITH ( FORMAT_TYPE = PARQUET)
GO

IF NOT EXISTS (SELECT * FROM sys.external_data_sources WHERE name = 'sandboxs2345_dfs_core_windows_net')
CREATE EXTERNAL DATA SOURCE [sandboxs2345_dfs_core_windows_net]
WITH (
LOCATION = 'abfss://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6a00050819041f07080f182a190b040e0805121958595e5f440e0c19440905180f441d03040e051d1944040f1e" rel="noreferrer noopener nofollow">[email protected]</a>'
)
GO

CREATE EXTERNAL TABLE [test] (
[Name] nvarchar(4000),
[JobNo] nvarchar(4000) PRIMARY KEY
)
WITH (
LOCATION = 'New/update.parquet',
DATA_SOURCE = [sandboxs2345_dfs_core_windows_net],
FILE_FORMAT = [SynapseParquetFormat]
)
GO


SELECT TOP 100 * FROM [dbo].[test]
GO

我有两列,名为“姓名”和“职位编号”。我想让 JobNo 成为主键。当我尝试运行上述查询时,出现以下错误

NOT NULL is not allowed for external table columns.

谁能告诉我会出现什么问题吗?

最佳答案

在 Azure Synapse 中,为了创建主键,我们应该将其称为 NONCLUSTEREDNOT ENFORCED

要了解有关 Synapse 中表约束的更多信息,请参阅:

https://learn.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-table-constraints

请点击此链接,其中包含创建外部的分步过程Synapse 中的表。

https://dwgeek.com/create-external-tables-in-azure-synapse-analytics.html/

按照上面链接中的步骤,我们可以像这样创建主键。

create EXTERNAL TABLE external_table_name
(
[column1] varchar(100) primary key NONCLUSTERED NOT ENFORCED,
[column2] integer,
[column3] integer,
[column4] integer
)
WITH (
LOCATION='/Datasets/data.csv',
DATA_SOURCE = external_source_name,
FILE_FORMAT = external_file_format_name
);

如果以上方法不起作用,我建议您执行以下操作:

https://learn.microsoft.com/en-us/answers/questions/819253/not-null-is-not-allowed-for-external-table-columns.html

关于azure - Azure Synapse 中的外部表列不允许使用 NOT NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71933733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com