TableHelper.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "TableHelper.h"
  2. #include <QStringList>
  3. TableHelper::TableHelper()
  4. {
  5. }
  6. QString TableHelper::createTable(const QString &tablename, const QList<QPair<QString, QString> > &fieldAndTypes)
  7. {
  8. QStringList fields;
  9. foreach(auto &item, fieldAndTypes)
  10. {
  11. fields << item.first +" " + item.second;
  12. }
  13. return QString("create table %1 ( \n %2 \n ); \n").arg(tablename).arg(fields.join(", \n"));
  14. }
  15. QString TableHelper::createComment(const QString &tablename, const QList<QPair<QString, QString> > &fieldAndComments)
  16. {
  17. QStringList comments;
  18. foreach(auto &item, fieldAndComments)
  19. {
  20. comments << QString("COMMENT ON COLUMN %1.%2 IS '%3'; ").arg(tablename).arg(item.first).arg(item.second);
  21. }
  22. return comments.join("\n");
  23. }
  24. QString TableHelper::createPrimaryAlter(const QString &tablename)
  25. {
  26. return QString("alter table %1 add constraint PK_%1_Id primary key(ID);").arg(tablename);
  27. }
  28. QString TableHelper::createSeq(const QString &tablename)
  29. {
  30. return QString("drop sequence SEQ_%1; \n\
  31. CREATE SEQUENCE SEQ_%1 \n\
  32. START WITH 1 \n\
  33. MAXVALUE 99999999999999 \n\
  34. MINVALUE 1 \n\
  35. CYCLE \n\
  36. CACHE 20 \n\
  37. ORDER;").arg(tablename);
  38. }
  39. QString TableHelper::createTrigger(const QString &tablename)
  40. {
  41. return QString("create or replace trigger %1_TRIGGER \n\
  42. before insert on %1 \n\
  43. for each row \n\
  44. begin \n\
  45. select SEQ_%1.nextval into :new.ID from dual;\n\
  46. end;").arg(tablename);
  47. }