У меня есть 2 таблицы: «списки» и «множественные копии»
Все записи в «множественных копиях» также существуют в «списках» и должны быть удалены из него.
Итак, для выполнения этой задачи я написал простой запрос SQLite3, завернутый в скрипт Ruby.
Это так просто, что я не понимаю, почему это не сработает. Я потратил несколько часов, пытаясь понять это, но ничего не изменилось, пробовал разные способы написать запрос, все тот же результат: записи из списков не удаляются! Я могу видеть вывод в текстовый файл, который генерируется после запуска скрипта, но в таблице все еще есть записи без изменений. Ничего не удалено !!
Вот скрипт:
require 'sqlite3'
db = SQLite3::Database.new('development.sqlite3')
db.results_as_hash = true;
rows= db.execute("SELECT * FROM multipleDupeCopies ")
rows.each do |row|
puts 'Deleting...'
rowid = row['id']
puts rowid
db.execute("DELETE FROM listings WHERE listings.id = 'rowid' ")
end
Есть предложения, пожалуйста?
EDIT:
Схема для списков
CREATE TABLE "listings"
(
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" VARCHAR(255),
"telephone" VARCHAR(255),
"fax" VARCHAR(255),
"suite" VARCHAR(255),
"address" VARCHAR(255),
"city" VARCHAR(255),
"province" VARCHAR(255),
"postal_code" VARCHAR(255),
"latitude" VARCHAR(255),
"longitude" VARCHAR(255),
............... many more columns NOT relevant
"created_at" datetime NOT NULL,
"updated_at" datetime NOT NULL
)
Схема для нескольких копий
CREATE TABLE "multipleDupeCopies"
(
"id" INTEGER PRIMARY KEY NOT NULL,
"name" VARCHAR(255),
"telephone" VARCHAR(255),
"fax" VARCHAR(255),
"suite" VARCHAR(255),
"address" VARCHAR(255),
"city" VARCHAR(255),
"province" VARCHAR(255),
"postal_code" VARCHAR(255),
"latitude" VARCHAR(255),
"longitude" VARCHAR(255),
"url" VARCHAR(255)
)