SqlAlchemy存在于usag

2024-10-03 21:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我用exist检查数据库中是否存在数据。在

我在下面的线索中跟随了@icecrime的答案。 SqlAlchemy Core and bare exists query

EXISTS如上述线程中所述使用时,我遇到以下错误。在

*** ProgrammingError: (ProgrammingError) ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'EXISTS'. (156) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. (8180)") u'SELECT EXISTS (SELECT * \nFROM [ItemData] \nWHERE [ItemData].[name] = ?)' ('skv',)

我正在使用Sqlalchemy,下面是我使用的代码。在

^{pr2}$

我已使用"mssql+pyodbc//"前缀连接到服务器。当我用sqlite:开发数据库时,它工作得非常完美,它是不是非常特定于Microsoft sql数据库访问?。在

PS:我是sqlalchemy的新手,如果我的术语有误,我很抱歉。在


Tags: 数据答案数据库sqlserverdriverexistsselect
1条回答
网友
1楼 · 发布于 2024-10-03 21:29:01

首先,我尝试在自己的SQL Server数据库上运行一个等效的查询:

SELECT EXISTS (SELECT * FROM [ItemData] WHERE [ItemData].[name] = 'skv')
Incorrect syntax near the keyword 'EXISTS'.

MSDN documentation shows that this use of EXISTS is not supported,所以我们去SQL Alchemy documentation,发现:

Note that some databases such as SQL Server don’t allow an EXISTS expression to be present in the columns clause of a SELECT. To select a simple boolean value based on the exists as a WHERE, use literal()

相关问题 更多 >