Heim  >  Fragen und Antworten  >  Hauptteil

Rufen Sie Spaltennamen und den letzten Datensatz aller Tabellen in MySQL ab

Gibt es eine Möglichkeit, die neuesten Werte aller Tabellen und deren Spaltennamen abzurufen, anstatt jede Tabelle auszuwählen? Ich bin auf die folgende Auswahlabfrage gestoßen, aber sie gibt nur Spaltennamen zurück und wenn ich * anstelle von Spaltenname verwende, gibt es viele unnötige Details, die ich nicht benötige.

SELECT column_name 
FROM information_schema.columns 
where table_schema = 'classicmodels'  
order by table_name, ordinal_position

Ich benötige nur den Spaltennamen, der den neuesten Datensatz in dieser Spalte enthält.

P粉401527045P粉401527045191 Tage vor359

Antworte allen(1)Ich werde antworten

  • P粉211273535

    P粉2112735352024-04-01 00:33:44

    我可以使用 phyton sql 连接器读取所有表的最新记录。可能有更好的方法来做到这一点,但因为我不允许在正在运行的数据库中工作,所以我选择了这种方法。

    import logging
    import mysql.connector
    
    mydb = mysql.connector.connect(
        host="127.0.0.1",
        port=3306,
        user="root",
        password="root",
        database="classicmodels")
    
    mycursor = mydb.cursor(buffered=True , dictionary=True)
    
    sql = "SELECT * FROM information_schema.tables where table_schema = 'classicmodels'"
    mycursor.execute(sql)
    myresult = mycursor.fetchall()
    tables = [d['TABLE_NAME'] for d in myresult]
    
    for x in tables:
        sql1 = "select * from {}".format(x)
        mycursor.execute(sql1)
        myresult1 = mycursor.fetchone()
        for val, cal in myresult1.items():
            print(f'{val} is {cal}')

    Antwort
    0
  • StornierenAntwort