eis/mix_cc/sql/delete_from.h

45 lines
1.0 KiB
C
Raw Normal View History

/**
* @file mix_cc/sql/delete_from.h
* @brief
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-09-17
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#pragma once
#include <mix_cc/sql/public.h>
#include <mix_cc/sql/column.h>
#include <mix_cc/sql/statement.h>
#include <mix_cc/sql/set.h>
namespace mix_cc {
namespace sql {
template <typename Tab>
struct delete_from_t : public prev_statement_t<void>, public statement_t {
static constexpr auto s_text = op::cmd_t::delete_from;
constexpr explicit delete_from_t(Tab table)
: prev_statement_t<void>(), table_(table) {}
template <typename... Conditions>
constexpr auto where(Conditions... conditions) {
return where_t(*this, conditions...);
}
constexpr auto get_command() {
return s_text + " "_s + table_.get_table_name();
}
public:
Tab table_;
};
template <typename Tab>
auto delete_from(Tab table) {
return delete_from_t<Tab>(table);
}
} // namespace sql
} // namespace mix_cc