Postgresql创建特定类型的表查询

2024-10-01 17:30:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在登记车号,我想把车号转移到数据库中。车号正确格式为ABC123 3个字母和3个数字。 我刚刚开始数据科学,或者我怎么能称之为sql科学。所以问题是我不知道如何用CARNUM数据类型创建表。 例如,下面是我用来创建表的代码

 create_table_query = '''CREATE TABLE Vartotojai
      (ID INT PRIMARY KEY     NOT NULL,
      CARNUM            TEXT    NOT NULL,
      TIME         TIME); '''

cursor.execute(create_table_query)
connection.commit()
print("Table created successfully in PostgreSQL ")

在这个CARNUM TEXT NOT NULL,中,我使用文本,但我认为这不是我需要用于3个字母和3个数字的。我还需要使用NOTNULL吗?因为我是从用户输入中获取数字的,所以我使用它作为汽车号码的返回:

while True:
    car_numb = input("Input car number:")

    if car_numb_re.match(car_numb) and car_numb.isupper():
        # matches!
        print("Match")
        Registration = True
        TicketReg(car_numb)
        break
    elif car_numb.islower():
        print("Wrong number format. Should be (XXX123)")
        continue

python中汽车编号的格式如下所示

car_numb_re = re.compile(r'^[A-Z]{3}\d{3}$')

Tags: re格式create字母tablenot数字科学
1条回答
网友
1楼 · 发布于 2024-10-01 17:30:57

您还可以使用基本相同的正则表达式将约束直接放入表本身。这样做的好处是,即使你的应用程序以某种方式被绕过(一个可能不太正确的修复),规则仍然会被强制执行

create_table_query = '''CREATE TABLE Vartotojai
      (ID INT PRIMARY KEY     NOT NULL,
      CARNUM            TEXT    NOT NULL,
      TIME         TIME, 
      constraint carnum_format_check check (carnum ~ '^[A-Z]{3}\d{3}$')
      ); ''';  

相关问题 更多 >

    热门问题