目前我有以下MySQL表: Employees (empID, empName, department);
我想将表更改为以下内容: Employees (empID, department, empName);
如何使用ALTER语句完成此操作?
注意:我只想更改列位置.
学习mysql时,我读到在向mysql表添加列时可以执行以下语句:
ALTER TABLE contacts ADD email VARCHAR(60) AFTER name;
Run Code Online (Sandbox Code Playgroud)
要么
ALTER TABLE contacts ADD email VARCHAR(60) FIRST;
Run Code Online (Sandbox Code Playgroud)
你什么时候想做这个?列顺序可以用于查询优化目的吗?longblobs应该是优化空间消耗的最后一栏吗?或者由于某些其他原因存在这些命令?
我已经读过varchar字段应该作为一个列放在数据库表的末尾 - 至少在MySQL中.原因是因为varchar字段具有可变长度,并且可能会减慢查询速度.我的问题:这是否适用于MSSQL 2012?我应该设计我的表,以便在每个数据库行的末尾都包含每个文本数据吗?
我有一个 EF Core 3.1 代码优先项目,其中大多数类继承自名为 BusinessObject 的公共基类。
public abstract class BusinessObject
{
[Required()]
[Column("Id", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Column("Comment", Order = 100)]
public string Comment { get; set; }
[Required()]
[Column("CreatedAt", Order = 101)]
public DateTimeOffset CreatedAt { get; set; } = DateTime.UtcNow;
[Required()]
[Column("CreatedByUserId", Order = 102)]
public int CreatedByUserId { get; set; }
//A few more columns....
}
[Table("MyTable", Schema = "SampleSchema")]
public class MyTable: BusinessObject
{
[Column("MyColumns1", Order = 1)] …Run Code Online (Sandbox Code Playgroud) 我有一个很大的疑问.
让我们以一个公司订单的数据库为例.
假设这家公司每月大约生产2000个订单,那么,每年大约24K订单,他们不想删除任何订单,即使它是5年(嘿,这是一个例子,数字并不意味着任何东西).
在具有良好的数据库查询速度的意义上,它最好只有一个表,或者每年有一个表更快?
我的想法是每年为订单创建一个新表,称为orders_2008,orders_2009等.
加速数据库查询可能是一个好主意吗?
通常使用的数据是当前年份的数据,因此行数越少越好.显然,当我同时搜索所有订单表时,这会产生问题,因为我是否应该运行一些复杂的UNION ..但这种情况在正常活动中非常罕见.
我认为最好有一个应用程序,95%的查询是快速的,剩下的有点慢,而不是一个总是很慢的应用程序.
我的实际数据库是130个表,我的应用程序的新版本应该有大约200-220个表...其中约40%将每年复制.
有什么建议吗?
编辑:RDBMS可能是Postgresql,也许(希望不是)Mysql
我希望用一些旧的数据创建一个新表,但也有我可以编辑的新空列。
我会从:
CREATE TABLE new_table AS SELECT ID, title, summary FROM old_table;
Run Code Online (Sandbox Code Playgroud)
然后用新列更改表:
ALTER TABLE new_table ADD note datatype;
Run Code Online (Sandbox Code Playgroud)
但是我需要我的新空列在标题和摘要之间,而不是像 ALTER 给我的那样“最终”。
我想结合 CREATE TABLE 和 CREATE TABLE AS SELECT - 但那可能吗?
mysql ×3
database ×2
sql ×2
.net-core ×1
alter ×1
alter-table ×1
c# ×1
create-table ×1
performance ×1
postgresql ×1
sql-server ×1
varchar ×1