@Override
	public Query parse() {
		if(!this.prepared) {
			this.prepared = true;
			
			String P_KEY = null;
			
			StringBuilder sB = new StringBuilder();
			sB.append("CREATE TABLE ");
			sB.append(this.t.replace("#__", this.db.getPrefix()));
			sB.append("\n");
			
			sB.append(" (\n");
			
			int i = 0;
			for(Column f : this.fL) {
				if(i > 0) {
					sB.append(", \n");
				}else{
					++i;
				}
				
				if(!f.isParsed()) {
					f.parse();
				}

				sB.append(f.getParsedColumn());
				if(f.hasPrimaryKey()) {
					if(null == P_KEY) {
						P_KEY = f.getName();
					}else{
						P_KEY = P_KEY + ", " + f.getName();
					}
				}
			}
			
			if(null != P_KEY) {
				sB.append(", \nPRIMARY KEY(");
				sB.append(P_KEY);
				sB.append(")");
			}
			
			for(ForeignKey fk : this.fkL) {
				if(!fk.isParsed()) {
					fk.parse();
				}
				
				sB.append(", \nCONSTRAINT ");
				sB.append(fk.getName());
				sB.append(fk.getParsedFK());
			}
			
			sB.append("\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
			
			this.query = sB.toString();
		}
		
		return this;
	}