Mysql
 sql >> база данни >  >> RDS >> Mysql

Не мога да добавя колона от рамка с данни на pandas към mysql в python

Не можете да добавите колона към вашата таблица с данни в нея с една стъпка. Трябва да използвате поне две отделни изрази, за да изпълните първо DDL (ALTER TABLE ) и DML секундата (UPDATE). или INSERT ... ON DUPLICATE KEY UPDATE ).

Това означава, че да добавите колона с NOT NULL ограничението изисква три стъпки:

  1. Добавяне на колона с нула
  2. Попълнете колоната със стойности във всеки ред
  3. Добавете NOT NULL ограничение към колоната

Като алтернатива, като използвате "фиктивна" стойност по подразбиране, можете да го направите в две стъпки (само внимавайте да не оставяте никакви "фиктивни" стойности да плават наоколо или да използвате стойности, които са смислени/добре документирани):

  1. Добавете колона като NOT NULL DEFAULT '' (или използвайте например 0 за числови типове)
  2. Попълнете колоната със стойности във всеки ред

Можете по желание да промените таблицата отново, за да премахнете DEFAULT стойност. Лично аз предпочитам първия метод, защото той не въвежда безсмислени стойности във вашата таблица и е по-вероятно да изведе грешка, ако втората стъпка има проблем. Аз може би преминете с втория метод, когато колона се поддава на определен естествен DEFAULT стойност и смятам да запазя това в дефиницията на крайната таблица.

Освен това не параметризирате правилно заявката си; трябва да предадете стойностите на параметрите на метода вместо да форматира аргумента низ вътре в извикването на метода. С други думи:

cursor.execute("Query with %s, %s, ...", iterable_with_values)  # Do this!
cursor.execute("Query with %s, %s, ..." % iterable_with_values)  # NOT this!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сортиране/подреждане в MySQL

  2. mysql подреждане по, null първо и DESC след

  3. Как да се свържа с различни бази данни по време на изпълнение?

  4. Не мога да отворя mysql-workbench

  5. Вземете заключени таблици в mysql заявка