8
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đã tạo một bảng "Bảng2" và nhận cảnh báo [bảng đã tồn tại] khi tôi chạy mã của mình. Tôi chỉ muốn tạo bảng nếu nó không tồn tại. Một số nghiên cứu của MySQL Cú pháp web
Mã của tôi:
cursor.execute['CREATE TABLE IF NOT EXISTS [2 INT]`table2`']
Cung cấp cảnh báo này:
_mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
Tôi có phiên bản cơ sở dữ liệu Phiên bản dữ liệu Phiên bản: 5.1.54-1ubuntu4 cảm ơn-TOM
Đã hỏi ngày 20 tháng 1 năm 2012 lúc 0:13Jan 20, 2012 at 0:13
1
Cú pháp MySQL là
CREATE TABLE [IF NOT EXISTS] tbl_name
[create_definition,...]
[table_options]
[partition_options]
Sử dụng những điều sau đây ...
cursor.execute['CREATE TABLE IF NOT EXISTS `table2` [`something` int[2]]']
kết quả:
__main__:1: Warning: Table 'table2' already exists
Mark Hall
53,4K9 Huy hiệu vàng96 Huy hiệu bạc109 Huy hiệu đồng9 gold badges96 silver badges109 bronze badges
Đã trả lời ngày 20 tháng 1 năm 2012 lúc 1:00Jan 20, 2012 at 1:00
user1136149user1136149user1136149
2312 Huy hiệu bạc6 Huy hiệu đồng2 silver badges6 bronze badges
2
Có một vài vấn đề với cú pháp của lệnh CREATE TABLE
của bạn.
Bạn có tên bảng sau các định nghĩa cột. Nó nên được đặt trước họ, như thế này:
0_mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
Thứ hai, bạn đang sử dụng
1 làm tên cột, nhưng tôi không chắc chắn rằng_mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
1 thậm chí còn là một tên cột hợp lệ. Nếu có, nó nên được trích dẫn để phân biệt nó với một số nguyên đơn giản._mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
Bạn có thể đọc thêm về cú pháp CREATE TABLE
tại tài liệu MySQL.
Đã trả lời ngày 20 tháng 1 năm 2012 lúc 0:46Jan 20, 2012 at 0:46
SRGERGSRGERGsrgerg
18.1k3 Huy hiệu vàng55 Huy hiệu bạc39 Huy hiệu Đồng3 gold badges55 silver badges39 bronze badges
Đầu tiên, sử dụng tham chiếu chính thức và không phải một số trang web ngẫu nhiên. Các tài liệu gần như chắc chắn sẽ tốt hơn rất nhiều. Thứ hai, bạn có thể có ý nghĩa gần hơn với:
CREATE TABLE IF NOT EXISTS table2 [columnname INT];
Đã trả lời ngày 20 tháng 1 năm 2012 lúc 0:47Jan 20, 2012 at 0:47
Kirk Strauserkirk StrauserKirk Strauser
29,8K5 Huy hiệu vàng47 Huy hiệu bạc64 Huy hiệu đồng5 gold badges47 silver badges64 bronze badges
Vấn đề là với cú pháp SQL của bạn. Cú pháp chính xác cho câu lệnh CREATE TABLE
đặt tên bảng trước các cột. Hơn nữa,
_mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
5 không phải là một định nghĩa cột hợp lệ. Nếu bạn có nghĩa là cho cột có tên "2", nó phải được trích dẫn như`2` INT
Hoặc nếu [nhiều khả năng] bạn muốn có một cột gồm hai chữ số thập phân, thì độ dài được đặt sau kiểu dữ liệu; Cột vẫn phải được đặt tên:
_mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
6Vì vậy, hoàn toàn, bạn muốn
cursor.execute['''
CREATE TABLE IF NOT EXISTS table2 [
foo_column INT[2]]
''']
Đã trả lời ngày 20 tháng 1 năm 2012 lúc 0:47Jan 20, 2012 at 0:47
import sqlite3
connexion = sqlite3.connect["bd-celebrites.sq3"]
curseur = connexion.cursor[]
curseur.execute["CREATE TABLE IF NOT EXISTS celebrites [nom TEXT, prenom TEXT, annee INTEGER]"]
Kirk Strauserkirk Strauser
29,8K5 Huy hiệu vàng47 Huy hiệu bạc64 Huy hiệu đồng5 gold badges44 silver badges90 bronze badges
Vấn đề là với cú pháp SQL của bạn. Cú pháp chính xác cho câu lệnh CREATE TABLE
đặt tên bảng trước các cột. Hơn nữa,
_mysql_exceptions.ProgrammingError: [1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[2 INT]`table2`' at line 1"]
5 không phải là một định nghĩa cột hợp lệ. Nếu bạn có nghĩa là cho cột có tên "2", nó phải được trích dẫn nhưDec 21, 2019 at 21:09
1