
Die Abfrage:"name" "owner" "species" "sex" "birth" "death"
"Fluffy" "Harold" "cat" "f" "1993-02-04" "0000-00-00"
"Claws" "Gwen" "cat" "m" "1994-03-17" "0000-00-00"
"Buffy" "Harold" "dog" "f" "1989-05-13" "0000-00-00"
"Fang" "Benny" "dog" "m" "1990-08-27" "0000-00-00"
"Bowser" "Diane" "dog" "m" "1979-08-31" "1995-07-29"
"Chirpy" "Gwen" "bird" "f" "1998-09-11" "0000-00-00"
"Whistler" "Gwen" "bird" "" "1997-12-09" "0000-00-00"
"Slim" "Benny" "snake" "m" "1996-04-29" "0000-00-00"
liefert dann wie gewünscht die 4 Besitzer. Nun kann ich händisch einen View anlegen:SELECT DISTINCT(OWNER) FROM pet;
Der dann den View anlegt mit den beiden Zeilen von dem Benutzer Harold. Nun hätte ich folgendes python-Skript zusammengeschrieben, welches jedoch eine Fehlermeldung rauswirft:create view test as (select * from pet where owner="Harold");
Code: Alles auswählen
import os
import time
import datetime
import MySQLdb as mdb
import mysql.connector
con=mdb.connect(user='root',host='localhost', passwd='', db='menagerie')
cur=con.cursor()
cur.execute("select distinct(Owner) from pet")
ver = cur.fetchall()
for record in ver:
print record
cur.execute('CREATE VIEW %s AS (SELECT * FROM pet WHERE OWNER="Harold")',(record))
Jetzt scheint es ja so zu sein, dass die einzelnen Spalten niht einwandfrei getrennt sind. Muss ich hier eventuell erst noch den varchar-Typ umwandeln?('Harold',)
Traceback (most recent call last):
File "CreateViewsAusMac2.py", line 13, in <module>
cur.execute('CREATE VIEW %s AS (SELECT * FROM pet WHERE OWNER="Harold")',(record))
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
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 \'\'Harold\' AS (SELECT * FROM pet WHERE OWNER="Harold")\' at line 1')
Freue mich auf Antworten, viele Grüße!
