import mysql.connector host = '127.0.0.1' port = 3306 username = 'FIXME' password = 'FIXME' database = 'FIXME' connection = mysql.connector.connect(host = host, user = username, passwd = password, port = port, autocommit = True) connection.database = database cursor = connection.cursor() cursor.execute("DROP TABLE IF EXISTS child") cursor.execute("DROP TABLE IF EXISTS parent") cursor.execute("""CREATE TABLE parent ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) ) ENGINE=Innodb DEFAULT CHARSET utf8""") cursor.execute("""CREATE TABLE child ( parent_id INT UNSIGNED NOT NULL, a BLOB NOT NULL, CONSTRAINT `parent_id` FOREIGN KEY (parent_id) REFERENCES parent (id) ) ENGINE=Innodb DEFAULT CHARSET utf8""") validUTF8 = bytearray(b'hello') invalidUTF8 = bytearray(b'\xc3\x28') cursor.execute("INSERT INTO parent VALUES ()") cursor.execute("INSERT INTO child VALUES (%s, %s)", (1, validUTF8,)) try: cursor.execute('INSERT INTO child VALUES (%s, %s)', (2, invalidUTF8,)) except (mysql.connector.errors.IntegrityError): pass cursor.execute("SHOW ENGINE INNODB STATUS") print cursor.fetchall()