import random nbOfBaseElements = 20 nbOfPizzaElements = 20 nbOfPizzaOrderElements = 20 nbOfToppingElements = 20 class tableCreator: nbOfElements = 0 tableCreatorSQL = "" def __init__(self, deleteTableSQL, tableCreatorSQL, nbOfElements, builderMethod): self.tableCreatorSQL = tableCreatorSQL self.nbOfElements = nbOfElements self.builderMethod = builderMethod self.deleteTableSQL = deleteTableSQL def run(self): print self.deleteTableSQL print self.tableCreatorSQL for i in range(1, self.nbOfElements+1): print self.builderMethod(i) print "\n" # Create Base table deleteTableBase = "DROP TABLE IF EXISTS BASE;" createTableBaseSQL = "CREATE TABLE PUBLIC.BASE (\n ID BIGINT(19) AUTO_INCREMENT NOT NULL,\n NAME VARCHAR(255) NOT NULL,\n VERSION INT(10)\n);" def baseBuilderMethod(i): dbName = "BASE" insertSQL = "INSERT INTO BASE (NAME, VERSION) VALUES ( '" return insertSQL + dbName + str(i) + "', 0 );" tebleBaseCreator = tableCreator(deleteTableBase, createTableBaseSQL, nbOfBaseElements, baseBuilderMethod) tebleBaseCreator.run() # Create pizza table deleteTablePizza = "DROP TABLE IF EXISTS PUBLIC.PIZZA;" createTablePizzaSQL = "CREATE TABLE PUBLIC.PIZZA (\n ID BIGINT(19) AUTO_INCREMENT NOT NULL,\n NAME VARCHAR(255) NOT NULL,\n PRICE DOUBLE(17),\n VERSION INT(10),\n BASE BIGINT(19)\n);" insertPizzaSQL = "\"\" + str(i) + \", \" + self.dbName+str(i) + \", \" + str(round(random.random()*100,2)) + \", 0, \"+ str(round(random(1,nbOfBaseElements+1))) + \" );\"" def pizzaBuilderMethod(i): dbName = "PIZZA" insertSQL = "INSERT INTO PIZZA (NAME, PRICE, VERSION, BASE) VALUES ( '" return insertSQL + dbName + str(i) + "', " + str(round(random.random()*100,2)) + ", 0, " + str(random.randint(1,nbOfBaseElements)) + " );" teblePizzaCreator = tableCreator(deleteTablePizza, createTablePizzaSQL, nbOfPizzaElements, pizzaBuilderMethod) teblePizzaCreator.run() # Create Pizza Order table deleteTablePizzaOrder = "DROP TABLE IF EXISTS PUBLIC.PIZZA_ORDER;" createTablePizzaOrderSQL = "CREATE TABLE PUBLIC.PIZZA_ORDER (\n ID BIGINT(19) AUTO_INCREMENT NOT NULL,\n ADDRESS VARCHAR(30),\n DELIVERY_DATE TIMESTAMP,\n NAME VARCHAR(255) NOT NULL,\n TOTAL DOUBLE(17),\n VERSION INT(10)\n);" def pizzaOrderBuilderMethod(i): bName = "PIZZAORDER" insertSQL = "INSERT INTO PIZZA_ORDER (ADDRESS, DELIVERY_DATE, NAME, TOTAL, VERSION) VALUES ( " return insertSQL + "'address" + str(i) + "', '2014-08-28 00:00:00.0', 'name" + str(i) + "', " + str(round(random.random()*100,2)) + ", 0 );" teblePizzaOrderCreator = tableCreator(deleteTablePizzaOrder, createTablePizzaOrderSQL, nbOfPizzaOrderElements, pizzaOrderBuilderMethod) teblePizzaOrderCreator.run() # Create TOPPING table deleteTableTopping = "DROP TABLE IF EXISTS PUBLIC.TOPPING;" createTableToppingSQL = "CREATE TABLE PUBLIC.TOPPING (\n ID BIGINT(19) AUTO_INCREMENT NOT NULL,\n NAME VARCHAR(255) NOT NULL,\n VERSION INT(10)\n);" def toppingBuilderMethod(i): dbName = "TOPPING" insertSQL = "INSERT INTO TOPPING (NAME, VERSION) VALUES ( '" return insertSQL + dbName + str(i) + "', 0 );" tebleToppingCreator = tableCreator(deleteTableTopping, createTableToppingSQL, nbOfToppingElements, toppingBuilderMethod) tebleToppingCreator.run() # Create Pizza Order + Pizza pairs table deleteTablePizzaOrderPizza = "DROP TABLE IF EXISTS PUBLIC.PIZZA_ORDER_PIZZAS;" createTablePizzaOrderPizzaSQL = "CREATE TABLE PUBLIC.PIZZA_ORDER_PIZZAS (\n PIZZA_ORDER BIGINT(19) NOT NULL,\n PIZZAS BIGINT(19) NOT NULL\n);" def pizzaOrderPizzabuilderMethod(i, pizzaNumber = nbOfPizzaElements): insertSQL = "INSERT INTO PIZZA_ORDER_PIZZAS (PIZZA_ORDER, PIZZAS) VALUES (" return insertSQL + str(i) + ", " + str(random.randint(1, pizzaNumber)) + " );" nbOfPizzaOrderPizzaElements = nbOfPizzaOrderElements teblePizzaOrderCreator = tableCreator(deleteTablePizzaOrderPizza, createTablePizzaOrderPizzaSQL, nbOfPizzaOrderPizzaElements, pizzaOrderPizzabuilderMethod) teblePizzaOrderCreator.run() # Create Pizza Order + Topping pairs table deleteTablePizzaOrderTopping = "DROP TABLE IF EXISTS PUBLIC.PIZZA_TOPPINGS;" createTablePizzaOrderToppingSQL = "CREATE TABLE PUBLIC.PIZZA_TOPPINGS (\n PIZZA BIGINT(19) NOT NULL,\n TOPPINGS BIGINT(19) NOT NULL\n);" def pizzaOrderToppingbuilderMethod(i, toppingNumber = nbOfToppingElements): insertSQL = "INSERT INTO PIZZA_TOPPINGS (PIZZA, TOPPINGS) VALUES (" nbOfToppingForPizza = random.randint(1, toppingNumber) stringToReturn = "" for j in range(1, nbOfToppingForPizza+1): stringToReturn = stringToReturn + insertSQL + str(i) + ", " + str(random.randint(1, toppingNumber)) + " );\n" return stringToReturn nbOfPizzaOrderToppingElements = nbOfPizzaElements teblePizzaOrderCreator = tableCreator(deleteTablePizzaOrderTopping, createTablePizzaOrderToppingSQL, nbOfPizzaOrderToppingElements, pizzaOrderToppingbuilderMethod) teblePizzaOrderCreator.run() class generateCsvInput: def __init(self, datasetNb,baseNb, toppingNb, pizzaNb, pizzaOrderNb): self.datasetNb = datasetNb self.baseNb = baseNb self.toppingNb = toppingNb self.pizzaNb = pizzaNb self.pizzaOrderNb = pizzaOrderNb def generatePizzaValues(self): pizzaValues = [] pizzaValues.extend("GenPizzaName" + str(random.randint(1000, 2000))) pizzaValues.extend(random.randint(50,80)) pizzaValues.extend(random.randint(1, self.baseNb)) pizzaValues.extend(random.randint(1, self.toppingNb)) pizzaValues.extend(random.randint(1, self.toppingNb)) pizzaValues.extend(random.randint(1, self.toppingNb)) pizzaValues.extend(random.randint(1, self.toppingNb)) return pizzaValues def generatePizzaOrderValue(self): pizzaOrderValues = [] pizzaOrderValues.extend("PizzaOrderName" + str(random.randint(1000, 2000))) pizzaOrderValues.extend("PizzaOrderAddress" + str(random.randint(1000, 2000))) pizzaOrderValues.extend(random.randint(30, 50)) pizzaOrderValues.extend("2014." + str(random.randint(10,12)) + "." + str(random.randint(10,27)) + ".") pizzaOrderValues.extend(random.randint(1, self.pizzaNb)) pizzaOrderValues.extend(random.randint(1, self.pizzaNb)) pizzaOrderValues.extend(random.randint(1, self.pizzaNb)) return pizzaOrderValues def run(): header = "id, pizzaName, pizzaPrice, pizzaBase, pizzaTopping1, pizzaTopping2, pizzaTopping3, pizzaTopping4, pizzaOrderName, pizzaOrderAddress, pizzaOrderTotal, pizzaOrderDeliveryDate, pizzaOrderPizza1, pizzaOrderPizza2, pizzaOrderPizza3" lines = [] for i in range(1, self.datasetNb): lineContent = [] lineContent.extend(str(i)) lineContent.extend(self.generatePizzaValues()) lineContent.extend(self.generatePizzaOrderValue()) lines.append(lineContent) print header for line in lines print ", ".join(line) csvGenerator = generateCsvInput(10, nbOfBaseElements, nbOfToppingElements, nbOfPizzaElements, nbOfPizzaOrderElements) csvGenerator.run()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question