标签: table

电子邮件地址、电话号码、名字、rixh 文本编辑器等的标准数据类型

我想使用 Sql Server 2008 R2 为我们的系统构建一个数据库。但我需要知道存储这些信息的最佳数据类型是什么:-

  • 电子邮件地址

  • 带分机的电话号码,如+44 12345 ext 123

  • 富文本编辑器。我们有一个名为“职位角色”或“主要职责”的字段,其中存储了每个员工角色的完整描述。

任何人都可以对此提出建议吗?谢谢

sql-server-2008 datatypes sql-server-2008-r2 table

4
推荐指数
1
解决办法
2万
查看次数

我应该将文档版本字段设置为主键的一部分吗

我应该将文档版本设置为主键吗我正在开发一个文档管理系统,并且我有这两个表代表整个表的一部分。

在此处输入图片说明

在 DocumentVersion 表上,我将主键设置为 (version + documentID) 。如果这是一种推荐的方法,其中 documentID 的类型为 int 而版本的类型为 decimal(5,2) ,那么任何人都可以提出建议吗?或者如果我创建一个新字段并将其设置为 DocumentVersion 表中的主键会更好?谢谢

sql-server-2008-r2 surrogate-key table

4
推荐指数
1
解决办法
408
查看次数

MySQL LOAD DATA INFILE 错误代码 1366。不正确的整数值:“ ”

我一直在尝试将一个CSV表上传到我的远程服务器数据库中,但我发现了一个错误。我MySQL在 RedHat Linux 发行版中使用。我的 mycsv.csv 文件如下所示:

aa,ProductDescription,country,potato,L,11/18/2013,N,05

bb,ProductDescription,country,tomato,L,12/31/9999,N,05

cc,ProductDescription,country,curry,M,01/01/2014,Y,05

dd,ProductDescription,country,spicy,V,05/01/2015,N,
Run Code Online (Sandbox Code Playgroud)

如您所见,最后一行以逗号“,”结尾,没有任何字段(它是空的,应该是这样的,如果我可以将其更改为 NULL,则更好)。但是,当我键入以下查询时:

LOAD DATA INFILE "/home/mycsv.txt" 
INTO TABLE inbound.master_data  
FIELDS TERMINATED BY ','  
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n';
Run Code Online (Sandbox Code Playgroud)

我在命令行中收到以下错误

错误代码:1366。不正确的整数值:“product_life_cycle”列的第 4 行

有人知道如何在最后一行的逗号后设置空值吗?(我认为这是我无法上传表格的问题)。非常感谢您提前。

表定义:

CREATE TABLE master_data
  ( aa varchar(6) NOT NULL, 
    bb varchar(50) NOT NULL, 
    cc varchar(3) NOT NULL, 
    dd varchar(2) NOT NULL, 
    ee varchar(1) DEFAULT NULL, 
    ff varchar(20) NOT NULL, 
    gg varchar(1) NOT NULL, 
    hh int(11) DEFAULT NULL, 
    PRIMARY KEY (aa), …
Run Code Online (Sandbox Code Playgroud)

mysql table csv

4
推荐指数
1
解决办法
2万
查看次数

管理和删除大表中的数据

我有以下场景:

一张巨大的桌子,也是目前系统中使用最多的桌子。我所说的巨大是指它的行数很大,实际磁盘大小也很大,因为它有 2 个字节的数组列,可以从我们的系统中保存文件。

问题是当我需要从中删除大量行时。首先,我只尝试了一个 delete within语句,但是当我决定重新启动数据库时,它冻结了整个表(不使用系统)大约 45 分钟。

然后我尝试删除 10 个注册表的块,并尝试删除 8k+ 行。它真的很慢,从那个表中获取数据的地方也很慢,当它删除了大约 700 行时,我启动了另一个使用同一个表的进程,并出现了死锁。

我应该如何从该表中进行这些批量删除?我考虑将表分成 2 个,一个用于包含大部分表卷的 2 字节数组,另一个用于包含其余信息(这些简单的东西,如 varchars、整数、日期时间等)。在这些删除情况下,这样做对我有好处吗?或者行数仍然会导致表上的这些锁?

SQL 的版本是 Microsoft SQL Server Standard(64 位)12.0.5000.0。

sql-server deadlock delete table

4
推荐指数
1
解决办法
1160
查看次数

我的数据库有多少块

如何使用 Oracle SQL Developer 编写查询以查找我的数据库使用了多少块?(表和索引)

index oracle database-size table

3
推荐指数
1
解决办法
369
查看次数

MySQL ADD KEY 含义

下面的代码在表 User 上创建主键,但我不理解第二个 ADD KEY (C_NATIONKEY),你知道在做什么吗?与外键有关吗?

ALTER TABLE USER
ADD PRIMARY KEY (C_USRKEY),
ADD KEY (C_NATIONKEY);
Run Code Online (Sandbox Code Playgroud)

mysql database-design table

3
推荐指数
1
解决办法
7461
查看次数

表的排序是基于聚集索引还是非聚集主键?

我在 name 列上创建了一个带有主键的表,表的排序基于 name 列

create table TestPrimaryKey (Name varchar(20) primary key,id int identity)

insert into TestPrimaryKey (SomeText) values ('john')
insert into TestPrimaryKey (SomeText) values ('ryan')
insert into TestPrimaryKey (SomeText) values ('jennifer')
insert into TestPrimaryKey (SomeText) values ('martha')
insert into TestPrimaryKey (SomeText) values ('luke')
insert into TestPrimaryKey (SomeText) values ('alex')
insert into TestPrimaryKey (SomeText) values ('wayne')
Run Code Online (Sandbox Code Playgroud)

现在我将主键上的聚集索引更改为非聚集索引,排序仍然基于名称列

    begin tran
    alter table dbo.TestPrimaryKey drop constraint PK__TestPrim__BC2905030401D947
    alter table dbo.TestPrimaryKey add constraint PK__TestPrim__BC2905030401D947 primary key nonclustered (SomeText)
    commit tran
Run Code Online (Sandbox Code Playgroud)

现在我正在另一个 (id) 列上创建一个唯一的聚集索引,但顺序仍然相同 …

sql-server primary-key clustered-index nonclustered-index table

3
推荐指数
1
解决办法
1937
查看次数

在 SQL Server 数据库中存储 PLC 数据

我正在开发一种软​​件解决方案,需要将源自许多 PLC(可编程逻辑控制器,用于控制传送带和机器人等工业机器)的原始数据点存储到 SQL Server 数据库中。我主要关心的是如何正确存储大量原始数字数据。

每个数据点具有以下属性:

  1. 日期时间戳
  2. 可能是:布尔值、整数、浮点数或字符串
  3. 全年每秒可存储一个数据点(每年约 31,536,000 个数据点)

我从中收集数据的每个 PLC 可能有多达 500 个数据点,我想计划支持数千个 PLC。这意味着,我每年至少有 15,768,000,000,000 个数据点(每年 31,536,000 个点 * 500 个点 * 1000 个 plcs)。我目前为每种数据类型(bool、int、float、string)都有一个表。为了减少记录和存储的数量,我为每条记录存储了 4 个数据点 [ID、DateTime、DataGroupID、Value1、Value2、Value3、Value4]。

我实现了这个,它运行良好(使用我最大的表进行约 7200 万条记录的快速查询),尽管它不是很灵活(更改数据类型需要在表之间移动数据,重新分组数据需要表/列更改,等等。)

因此,我想提高灵活性的想法是保留数据类型特定的表,而只是将每个数据点存储为自己的记录。bigint 的最大大小(记录 ID 的数据类型)的一些简短数学表明我有很多可用的 ID。尽管存储要求和查询性能仍然是一个问题。我应该担心使用这种方法的任何事情吗?有更好的选择吗?

我担心的根源是我根本没有体验过巨大的数据库/表,所以虽然我知道几百万条记录很小,但我仍然不知道一个过顶的表会是什么样子。此外,数据的存储是我的软件的基础,因此更新需要大量工作才能实现。

storage table sql-server-2016

3
推荐指数
1
解决办法
2961
查看次数

为什么即使在显式设置 IDENTITY_INSERT ON 并使用列列表后,我仍会收到身份插入错误?

我的代码:

SET IDENTITY_INSERT SomeCoolDatabase.BoringOldSchema.TableWithIdentityColumn ON

INSERT INTO SomeCoolDatabase.BoringOldSchema.TableWithIdentityColumn
SELECT ColumnWithIdentity, OtherColumnWithoutIdentity, LastColumnInThisTable
FROM ALinkedServer.PrettyCoolDatabaseAsWell.StandardSchema.TableWithIdentityColumn

SET IDENTITY_INSERT SomeCoolDatabase.BoringOldSchema.TableWithIdentityColumn OFF
Run Code Online (Sandbox Code Playgroud)

错误:

消息 8101,级别 16,状态 1,第 4 行

表 'SomeCoolDatabase.BoringOldSchema.TableWithIdentityColumn' 中标识列的显式值只能在使用列列表且 IDENTITY_INSERT 为 ON 时指定。

是什么赋予了?

sql-server insert sql-server-2008-r2 identity table

2
推荐指数
1
解决办法
1848
查看次数

如果列不存在,则向表中添加列并填充添加的列

我有一个看起来像这样的代码

declare @query = '
   Alter Table Temp
   Add NewColumn int

   update Temp
   set NewColumn = 100'

exec (@query)
Run Code Online (Sandbox Code Playgroud)

它将给出错误 NewColumn 不存在。但如果我在不使用 @query = '' 的情况下正常运行它,它运行得很好。另外,当您使用 @query = ' text ' 然后 exec 运行这样的代码时,它被称为什么?

sql-server alter-table table

2
推荐指数
1
解决办法
4358
查看次数