45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
/**
|
|
* @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
|