我正在使用sqlite3在python 2.7上构建数据库,但我遇到了一个小问题。
基本上,我有两个表,每个表存储以下信息:
鸣叫:
user_name,
tweet_time,
tweet_text
用户:
user_name,
user_description,
user_followers,
user_verified,
user_location
我试图添加一个提示用户输入字符串的函数,并且删除了两个表中包含提交的字符串(将在tweet_text列中找到)的每一行。
我遇到的问题是“用户”表不包含tweet_text列,因此我不确定如何删除此表中的相应行而不必实际添加tweet_text列。
到目前为止,我只是对“ Tweet”表进行了简单的删除查询。
delete_string = raw_input("Which string would you like to be removed from your database?: ")
c.execute("DELETE FROM Tweet WHERE tweet_text LIKE ?", ('%'+delete_string+'%',))
我想知道是否有任何方法可以删除“用户”表中的相应行,而不必显式地将tweet_text包含为一列。
我对python相对缺乏经验,这是我第一次使用查询编写,因此将不胜感激!
提前致谢。
最佳答案
我只是从我的脑海里写下了这个,但是尝试这个查询:
DELETE tweet, user
FROM Tweet tweet JOIN User user ON tweet.user_name = user.user_name
WHERE tweet.tweet_text LIKE ?;
尽管您要查找的是this,但
ON DELETE CASCADE
。这将自动从外键表(即
User
表)中将其删除。确保在SQLite中启用外键支持
PRAGMA foreign_keys = ON;
关于python - 用Python查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35998417/