小编Mar*_*ith的帖子

将自动增量ID添加到现有表?

我有一个预先存在的表,包含'fname','lname','email','password'和'ip'.但现在我想要一个自动增量列.但是,当我输入:

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?:)

mysql sql definition auto-increment

67
推荐指数
9
解决办法
21万
查看次数

T-SQL:如何选择值列表中不在表中的值?

我有一个电子邮件地址列表,其中一些在我的表中,其中一些不在.我想从该列表中选择所有电子邮件,以及它们是否在表中.

我可以让那些邮件地址在桌子上的用户像这样:
SELECT u.* FROM USERS u WHERE u.EMAIL IN ('email1', 'email2', 'email3')

但是如何在该列表中选择表中不存在的值?

而且,我该怎么选择这样:

E-Mail | Status
email1 | Exist  
email2 | Exist  
email3 | Not Exist  
email4 | Exist  
Run Code Online (Sandbox Code Playgroud)

提前致谢.

sql t-sql sql-server

55
推荐指数
2
解决办法
12万
查看次数

客户端统计信息表(Microsoft SQL Server Management Studio)

除了创建新查询之外,有没有办法清除Microsoft SQL Server Management Studio(2008 R2)中的客户端统计信息表?

sql sql-server ssms sql-server-2008

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

如何在SQL Server中声明全局变量..?

我想对来自不同数据库的不同查询使用相同的值

喜欢

DECLARE @GLOBAL_VAR_1 INT = Value_1

DECLARE @GLOBAL_VAR_2 INT = Value_2

USE "DB_1"
GO
SELECT * FROM "TABLE" WHERE "COL_!" = @GLOBAL_VAR_1 

AND "COL_2" = @GLOBAL_VAR_2

USE "DB_2"
GO

SELECT * FROM "TABLE" WHERE "COL_!" = @GLOBAL_VAR_2 
Run Code Online (Sandbox Code Playgroud)

但它给出了错误.

必须声明标量变量"@GLOBAL_VAR_2".

任何人都可以提出任何方法来做到这一点......?

sql sql-server

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

如何在T-SQL表变量中重新设置标识列?

我有一个T-SQL 表变量(不是表),它有一个自动递增的标识列.我想清除此变量中的所有数据并将标识列值重置为1.如何才能完成此操作?

t-sql sql-server table-variable

33
推荐指数
2
解决办法
6万
查看次数

Mysql选择不同

我试图选择mysql表中的重复行它对我来说工作正常,但问题是它不允许我选择该查询中的所有字段,只是让我选择我用作不同的字段名称,lemme写入查询更好的下划线

mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")
Run Code Online (Sandbox Code Playgroud)

第一个工作正常

现在,当我试图选择所有字段时,我最终会出现错误

我试图选择最新的重复项,让我们说,ticket_id 127在行ID 7,8,9上是3次,所以我想选择一次最新的条目,在这种情况下为9,这适用于所有其余的ticket_id的

不知道谢谢

mysql select greatest-n-per-group

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

从表中删除具有一些排序的前N行(按'列'排序)

我对某些专栏删除前N行的订单感到困惑.

我在这里创建了一个示例,例如小提琴

这些查询有什么问题?

 Delete Top(3) from Table1 order by id desc

 Delete Top(3) from Table1 
 where id IN (select id from Table1 order by id desc)
Run Code Online (Sandbox Code Playgroud)

因为在mysql中,limit关键字可以很好地完成工作

sql t-sql sql-server

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

我如何使用T-SQL Group By

我知道我需要(虽然我不知道为什么),一个GROUP BY在任何使用聚合函数类似SQL查询的结尾条款count,sum,avg,等:

SELECT count(userID), userName
FROM users
GROUP BY userName
Run Code Online (Sandbox Code Playgroud)

什么时候GROUP BY会有用,什么是性能分支?

sql sql-server group-by

31
推荐指数
2
解决办法
5万
查看次数

FAST_FORWARD游标何时会有一个工作表(这是否应该避免)?

背景

我注意到在尝试运行总查询时,有时估计的计划只显示"获取查询"

取

并且实际计划显示了聚集索引扫描的重复提取

获取扫描

在其他场合(例如,当向TOP查询添加a时),估计的计划显示填充工作表的"人口查询"阶段

获取并填充

实际计划显示聚集索引扫描以填充工作表,然后重复搜索该工作表.

寻求

  1. SQL Server在选择一种方法而不是另一种方法时使用了什么标准?
  2. 我是否正确地认为第一种方法(没有额外的工作表填充步骤)更有效率?

(额外的问题:如果有人能够解释为什么第一个查询中的每个扫描都算作2个逻辑读取,这可能也很有启发性)

附加信息

我在这里找到了这篇文章,它解释了FAST_FORWARD游标可以使用动态计划或静态计划.在这种情况下,第一个查询似乎是使用动态计划,第二个查询是静态计划.

我也发现,如果我尝试

SET @C2 = CURSOR DYNAMIC TYPE_WARNING FOR SELECT TOP ...
Run Code Online (Sandbox Code Playgroud)

光标被隐式转换为keyset游标,因此很明显TOP动态游标不支持该构造,也许是出于Ruben的答案的原因 - 仍在寻找对此的明确解释.

但是我还读到,动态游标往往比它们的静态对应物(源1,源2),这似乎让我感到惊讶,因为静态变种必须读取源数据,复制它,然后读取副本而不仅仅是读取源数据.我前面提到的文章提到了动态游标的使用.谁能解释一下这些是什么?它只是一个RID或CI键,还是不同的东西?markers

脚本

SET STATISTICS IO OFF

CREATE TABLE #T ( ord INT IDENTITY PRIMARY KEY, total INT, Filler char(8000))

INSERT INTO #T (total) VALUES (37),(80),(55),(31),(53)

DECLARE @running_total INT, 
    @ord INT, 
    @total …
Run Code Online (Sandbox Code Playgroud)

sql sql-server cursor sql-server-2008 database-performance

31
推荐指数
2
解决办法
2766
查看次数

在PHP中获取今天和昨天的时间戳

如何通过在php中使用strtotime()函数来获取今天,昨天和前天12点的时间戳?

12点是一个变量,将由用户更改.

php timestamp

30
推荐指数
3
解决办法
7万
查看次数