标签: table

错误代码 1117 列太多;MySQL 对表的列限制

我有一个包含 1699 列的表,当我尝试插入更多列时,我得到了,

错误代码:1117。列太多

在这个表中,我只有 1000 行。对我来说,最重要的是列数。桌子上有什么限制吗?我想创建 2000 列。那可能吗?

mysql table

39
推荐指数
5
解决办法
7万
查看次数

更改mysql表注释

我知道可以在创建时定义mysql表注释

create table (...)comment='table_comment';

您可以通过以下方式显示评论:

show table status where name='table_name';

创建后如何更改(更改?)表注释。我的意思是没有再次删除和重新创建表。

mysql table comments

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

如何确定我在 SQL Server 数据库中的表的大小

是否有任何内置函数/存储过程/查询有助于检索有关MyTableSQL Server 数据库中大小的信息?

sql-server table

33
推荐指数
3
解决办法
20万
查看次数

ON 与 WHERE 上的索引性能

我有两张桌子

@T1 TABLE
(
    Id INT,
    Date DATETIME
)

@T2 TABLE
(
    Id INT,
    Date DATETIME
)
Run Code Online (Sandbox Code Playgroud)

这些表在 (Id, Date) 上有一个非聚集索引

我加入这些表

SELECT *
FROM T1 AS t1
INNER JOIN T2 AS t2
ON 
    t1.Id = t2.Id
WHERE 
    t1.Date <= GETDATE()
    AND
    t2.Date <= GETDATE()
Run Code Online (Sandbox Code Playgroud)

这也可以写成

SELECT *
FROM T1 AS t1
INNER JOIN T2 AS t2
ON 
    t1.Id = t2.Id
    AND
    t1.Date <= GETDATE()
    AND
    t2.Date <= GETDATE()
Run Code Online (Sandbox Code Playgroud)

我的问题是,这两个查询中哪一个提供了更好的性能,为什么?或者他们是平等的?

index join sql-server t-sql table

26
推荐指数
3
解决办法
3150
查看次数

表和视图有通用术语吗?

我正在寻找一个通用术语,例如数据库抽象,它包括所有表格数据结构,如数据库表、视图、表格查询结果。

据我了解,“实体”不是正确的术语,因为它对应于表,而不是视图,甚至不是查询。“结果”对于可修改的数据结构来说是违反直觉的。

在专业环境中哪个是合适的术语?

query terminology view table

23
推荐指数
2
解决办法
3249
查看次数

如何处理带有可变列的表设计

我有一个表设计方案,并且作为非 DBA 类型,希望对哪个更可扩展提出意见。

假设您被要求记录一个都市区的房屋信息,从一个小社区(200 所房屋)开始,但最终增长到 5000000 多所房屋。

您需要存储基本信息:ID#(我们可以用作唯一索引的唯一批次 #)、地址、城市、州、邮编。很好,简单的表会处理它。

但是每一年,你都会被要求记录所有房子的额外信息——每年都有哪些信息会发生变化。因此,例如,第一年,您需要记录所有者的姓氏和面积。第二年,你被要求保留姓氏,但丢弃平方英尺,而是开始收集业主的名字。

最后 - 每年额外列的数量都会改变。可能从 2 个额外的列开始,然后到明年的 6 个,然后回到 2 个。

因此,一种表格方法是尝试将自定义信息添加为房屋表格中的列,因此只有一张表格。

但是我有一种情况,有人为此将表格布置为:

“房屋表”列:ID、地址、城市、州、邮编 - 每所房屋一行

ID   Addr              City     State  Zip 
-------------------------------------------
1    10 Maple Street   Boston      MA  11203

2    144 South Street  Chelmsford  MA  11304

3    1 Main Avenue     Lowell      MA  11280
Run Code Online (Sandbox Code Playgroud)

“自定义信息表”列:ID、名称、值 - 表格如下所示:

ID   Name             Value

1    Last Name        Smith

2    Last Name        Harrison

3    Last Name        Markey

1    Square Footage   1200

2    Square Footage   1930

3    Square Footage …
Run Code Online (Sandbox Code Playgroud)

normalization database-design architecture table

17
推荐指数
2
解决办法
3万
查看次数

为什么在 psql 中使用 \dt(+) 时看不到我的表 (PostgreSQL)?

我已经按照以下方式donor在架构中创建了表reference

CREATE TABLE reference.donor (
    donor_code smallint PRIMARY KEY,
    donor_name character varying NOT NULL,
    donor_type smallint REFERENCES reference.donor_type (type_id),
    alpha_2_code char(2) REFERENCES reference.iso_3166_1 (alpha_2_code)
);
Run Code Online (Sandbox Code Playgroud)

我已经按照以下方式填充了表格:

INSERT INTO reference.donor (donor_code, donor_name, donor_type, alpha_2_code)
SELECT donor_code, donor_name, donor_type, alpha_2_code
FROM reference.donor_template;
Run Code Online (Sandbox Code Playgroud)

当我运行时:

\dt+ reference.*
Run Code Online (Sandbox Code Playgroud)

在 psql 我看到reference.donor表:

                          List of relations
  Schema   |      Name      | Type  |  Owner   | Size  | Description 
-----------+----------------+-------+----------+-------+-------------
 reference | donor          | table | postgres | 16 kB | 
 reference | …
Run Code Online (Sandbox Code Playgroud)

schema postgresql psql table

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

Postgres 中的“转换表”是什么?

描述Postgres 10 新功能的页面提到了“触发器的转换表”。

触发器的转换表

此功能AFTER STATEMENT通过适当地向查询公开旧行和新行,使触发器既实用又高效。在此功能之前,AFTER STATEMENT触发器无法直接访问这些,并且变通方法是拜占庭式的并且性能很差。现在可以将许多触发器逻辑编写为AFTER STATEMENT,从而避免需要在 FOR EACH ROW 触发器所需的每一行进行昂贵的上下文切换。

什么是过渡表?

postgresql trigger table postgresql-10

15
推荐指数
2
解决办法
3774
查看次数

如何按排序顺序列出所有表列?

我知道\d table_name列出了该表的所有列,但是有没有办法按字母顺序列出它们?

postgresql table

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

MySQL中的两个同名表

今天我删除了一个临时表时遇到了这个奇怪的问题。我删除了临时表并描述了该表只是为了验证。但是,桌子没有掉下来。经过一番搜索,我发现:

MySQL 允许创建一个与永久表同名的临时表。所以临时表被删除了,而不是永久表。我对我正在工作的表感到非常困惑。

MySQL 版本:5.1.36-enterprise-gpl-pro-log

这是我测试过的:

mysql> create table test(id int);
Query OK, 0 rows affected (0.00 sec)

mysql> desc test;

| Field | Type    | Null | Key | Default | Extra |
--------------------------------------------------
 id       int(11)   YES           NULL

 mysql> create temporary table test(id int);
 Query OK, 0 rows affected (0.00 sec)



mysql> desc test;

| Field | Type    | Null | Key | Default | Extra |
--------------------------------------------------
 id       int(11)   YES           NULL


mysql> drop table test;
 Query OK, 0 …
Run Code Online (Sandbox Code Playgroud)

mysql table

9
推荐指数
1
解决办法
9672
查看次数