Heim > Fragen und Antworten > Hauptteil
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粉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}')