Hướng dẫn create table if not exists python mysql - tạo bảng nếu không tồn tại python mysql

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.

  1. 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:

    _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"]
    
    0

  2. Thứ hai, bạn đang sử dụ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 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.

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"]
6

Vì 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

Làm thế nào để bạn tạo một bảng nếu nó không tồn tại trong MySQL?

Sau đây minh họa cú pháp cơ bản của câu lệnh CREATE TABLE:..
Tạo bảng [nếu không tồn tại] Table_Name [cột_1_definition, cột_2_definition, ..., Table_constraints] động cơ = Storage_Engine ;.
cột_name data_type [length] [không phải null] [giá trị mặc định] [auto_increment] cột_constraint ;.

Tạo bảng là gì nếu không tồn tại SQL?

Câu nói nếu không tồn tại câu lệnh được sử dụng trong việc tạo bảng, trước tiên sẽ phân tích danh sách tất cả các bảng có trong lược đồ đó, thì nếu không có bảng có tên của bảng, sẽ được tạo, nó sẽ Tạo thành công bảng, nếu không nó sẽ thực thi lệnh thành công mà không cần tạo ...

Làm cách nào để tạo bảng MySQL trong Python?

Tạo một bảng trong MySQL bằng Python..
Nhập MySQL.Gói đầu nối ..
Tạo một đối tượng kết nối bằng MySQL.kết nối.....
Tạo một đối tượng con trỏ bằng cách gọi phương thức con trỏ [] trên đối tượng kết nối được tạo ở trên ..
Sau đó, thực thi câu lệnh bảng Tạo bằng cách chuyển nó dưới dạng tham số cho phương thức EXECUTE [] ..

Làm thế nào để bạn thêm cột nếu không tồn tại MySQL?

Chọn cột_name từ thông tin_schema .columns trong đó table_schema = [tên cơ sở dữ liệu] và bảng_name = [tên bảng];Nếu truy vấn trên trả về kết quả thì nó có nghĩa là cột tồn tại, nếu không bạn có thể tiếp tục và tạo cột. COLUMNS WHERE TABLE_SCHEMA =[Database Name] AND TABLE_NAME =[Table Name]; If the above query returns a result then it means the column exists, otherwise you can go ahead and create the column.

Bài Viết Liên Quan

Chủ Đề