在SQLITE中在多于1列上指定主键的语法是什么?
我想在我的表中插入数据,但只插入我的数据库中不存在的数据!
这是我的代码:
ALTER PROCEDURE [dbo].[EmailsRecebidosInsert]
(@_DE nvarchar(50),
@_ASSUNTO nvarchar(50),
@_DATA nvarchar(30) )
AS
BEGIN
INSERT INTO EmailsRecebidos (De, Assunto, Data)
VALUES (@_DE, @_ASSUNTO, @_DATA)
WHERE NOT EXISTS ( SELECT * FROM EmailsRecebidos
WHERE De = @_DE
AND Assunto = @_ASSUNTO
AND Data = @_DATA);
END
Run Code Online (Sandbox Code Playgroud)
错误是:
消息156,级别15,状态1,过程EmailsRecebidosInsert,第11行
关键字'WHERE'附近的语法不正确.
首先,我真的是超级新人,所以我希望我能够正确地发布问题。请告诉我是否有任何问题。
现在,这是我的问题:我想用数据填充数据库,前提是它不存在于其中。我搜索了这个主题,我想我找到了正确的答案(你可以在这里阅读一个例子:[ SQLite 中的“如果不存在则插入”语句)但我需要在 python 中编写这些简单的命令行..这就是我的问题。(我预计我对 Python 也很陌生)
所以,这就是我所做的:
self.cur.execute("INSERT INTO ProSolut VALUES('a','b','c')")
self.cur.execute("SELECT * FROM ProSolut")
self.cur.execute("WHERE NOT EXISTS (SELECT * FROM ProSolut WHERE VALUES = ('a','b','c'))")
Run Code Online (Sandbox Code Playgroud)
这是错误:
[ERROR] behavior.box :_safeCallOfUserMethod:125 _Behavior__lastUploadedChoregrapheBehaviorbehavior_1142022496:/ProSolutDB_11: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/albehavior.py", line 113, in _safeCallOfUserMethod func(functionArg) File "<string>", line 45, in onInput_onStart OperationalError: near "WHERE": syntax error
Run Code Online (Sandbox Code Playgroud)
所以基本上我认为第三个字符串中的括号“(”存在一些问题。--> ("OperationalError: near "WHERE": syntax error")
我知道这可能是一个愚蠢的错误。如果你能帮助我,我将不胜感激。
非常感谢
EG:我忘了说我使用的是软件 Choregraphe,它使用 Python 语言构建所有功能块。这意味着,即使语言基本上是 Python,有时语义也不完全相同。我希望这篇文章可以在未来帮助某人。
如何判断sqlite3数据库中是否存在值,python
到目前为止,这是我的代码:
def signup():
email = request.form['email']
username = request.form['user']
password = request.form['password']
g.db.execute("INSERT INTO users VALUES (?, ?, ?)", [email, username, password])
g.db.commit()
Run Code Online (Sandbox Code Playgroud)
我希望它只将值插入数据库,如果email和username不在数据库中,但我不知道从哪里开始。