from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtSql import * class mywindow(QWidget): def __init__(self, parent = None): QWidget.__init__(self, parent) self.db = QSqlDatabase.addDatabase("QSQLITE") self.mainbox = QHBoxLayout() self.rightbox = QVBoxLayout() self.leftbox = QVBoxLayout() self.mainbox.addLayout(self.leftbox) self.mainbox.addLayout(self.rightbox) self.setLayout(self.mainbox) self.btn_create_base = QPushButton("Создать базу") self.btn_create_base.clicked.connect(self.create_base) self.leftbox.addWidget(self.btn_create_base) def create_base(self): self.db.setDatabaseName("1.db") if self.db.open(): query = QSqlQuery() query.exec_("CREATE TABLE people (" "id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, " "name VARCHAR(40) NOT NULL)") query.exec_("CREATE TABLE property (" "id INTEGER NOT NULL, " "id_n INTEGER AUTOINCREMENT UNIQUE NOT NULL, " "dvig VARCHAR(40), " "nedvig VARCHAR(40), " "FOREIGN KEY (id) REFERENCES people(id)") QMessageBox.information(None, "Сообщение", "База данных успешно создана.") else: QMessageBox.warning(None, "Ошибка", "Создать базу не удалось!\n"+self.db.lastError().text()) if __name__ == "__main__": import sys app = QApplication(sys.argv) window1 = mywindow() window1.show() sys.exit(app.exec_())
Никаких ошибок не пишет. Просто молча не создаёт вторую таблицу (property) и всё.