次のコードを使用して、Python 経由でテーブルに値を挿入しようとしています。
db = MySQLdb.connect(host="localhost",user="root",passwd="", db="x")
db.autocommit(True)
cur = db.cursor()
query = """INSERT INTO b (source_id,text,author,score,type,location) VALUES (%s,%s,%s,%s,%s,%s)""" % (1,Tweet.text,User.screen_name,score,search_type,User.location)
print query
cur.execute(query)
印刷出力のすべての変数値がクエリ文字列に適切に入力されていることがわかります (特殊文字は使用していません)。しかし、値は単にデータベースに挿入されていません。私のテーブルは次のようになります。
| freebee | CREATE TABLE `b` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`source_id` int(5) NOT NULL,
`text` varchar(255) NOT NULL,
`author` varchar(120) DEFAULT NULL,
`score` tinyint(3) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`start_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`end_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`type` enum('food','event','stuff') NOT NULL,
`location` varchar(120) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=132 DEFAULT CHARSET=latin1 |
特に、AUTO_INCREMENT は 132 に設定されています。数分前に挿入クエリを手動でテストしたところ、ID #132 として入力されました。これは、Pythonスクリプトを介して131回挿入しようとして失敗したことを意味すると思いますが、IDキーは増加し続けています。ありがとうございました。