20 #include <basic/database/sql_utils.hh>
23 #include <utility/sql_database/DatabaseSessionManager.hh>
24 #include <utility/vector1.hh>
26 #include <basic/database/schema_generator/PrimaryKey.hh>
27 #include <basic/database/schema_generator/ForeignKey.hh>
28 #include <basic/database/schema_generator/Column.hh>
29 #include <basic/database/schema_generator/Schema.hh>
32 #include <cppdb/frontend.h>
33 #include <boost/uuid/uuid.hpp>
34 #include <boost/uuid/uuid_io.hpp>
44 using utility::sql_database::sessionOP;
45 using cppdb::statement;
69 using namespace basic::database::schema_generator;
71 Column struct_id(
"struct_id",
new DbUUID());
72 Column radius_of_gyration(
"radius_of_gyration",
new DbReal());
74 Columns primary_key_columns;
75 primary_key_columns.push_back(struct_id);
76 PrimaryKey primary_key(primary_key_columns);
78 Columns foreign_key_columns;
79 foreign_key_columns.push_back(struct_id);
81 reference_columns.push_back(
"struct_id");
82 ForeignKey foreign_key(foreign_key_columns,
"structures", reference_columns,
true);
84 Schema table(
"radius_of_gyration", primary_key);
85 table.add_foreign_key(foreign_key);
86 table.add_column(radius_of_gyration);
88 table.write(db_session);
94 dependencies.push_back(
"StructureFeatures");
102 boost::uuids::uuid struct_id,
107 std::string statement_string =
"INSERT INTO radius_of_gyration (struct_id, radius_of_gyration) VALUES (?,?);";
108 statement stmt(basic::database::safely_prepare_statement(statement_string,db_session));
109 stmt.bind(1,struct_id);
111 basic::database::safely_write_to_database(stmt);