1050 - Table 'purchase_order_invoice' already exists
时间: 2024-10-28 19:06:48 浏览: 14
这个错误提示 "Table 'purchase_order_invoice' already exists" 表示你在尝试创建一个新的数据库表 `purchase_order_invoice` 时,该表已经存在于当前的数据库系统中。这意味着你可能尝试了多次创建同名的表,或者在未删除旧表的情况下,误用了相同的创建命令。
解决这个问题的方法是:
1. **确认是否真的想覆盖**:如果你确信这是新的需求并且希望替换原有的表,先删除现有的表再重建。
```sql
DROP TABLE IF EXISTS purchase_order_invoice;
CREATE TABLE purchase_order_invoice ...;
```
2. **检查创建表的脚本**:查看之前执行的SQL脚本,确保没有多余的 `CREATE TABLE` 语句或者忘记删除旧表的部分。
3. **更改表名**:如果你只想在现有基础上增加字段或者修改结构,而不完全替换整个表,考虑使用不同的表名。
4. **恢复数据**:如果你只是想更新已有表的数据,而不是新建表,确保你知道如何正确地使用 `ALTER TABLE` 或者 `UPDATE` 语句。
在处理这类问题时,务必小心操作,以防意外删除重要数据。
相关问题
模型采购和模型供应商上单通过invoice_lines = fields.One2many('account.move.line', 'purchase_line_id', string="Bill Lines", readonly=True, copy=False)关联,下面这样为啥报错 for purchase_order_line in purchase_order_lines: account_move_taxes =self.env['account.move.line'].search(['purchase_line_id','=',purchase_order_line.id])
在您的代码中,查询语句的语法有误。应该使用以下语法:
```
account_move_taxes = self.env['account.move.line'].search([
('purchase_line_id', '=', purchase_order_line.id)
])
```
在查询语句中,每个条件应该是一个元组,元组的第一个元素是要查询的字段,第二个元素是要查询的值。您的查询语句中,缺少了元组的括号,导致语法错误。
请注意,`self`代表当前对象,如果您在一个方法中编写上述代码,则需要使用`self`。如果您在一个类方法中编写代码,则应该使用`cls`而不是`self`。
把这段sql代码转换mybatisplus代码:SELECT p.id, p.identifier,c.company_order,p.business_source,p.salesmen,p.charge,p.contract_sign_date,p.total_money,IFNULL(pa.invoice_money,0.00) invoice_money,IF(pa.invoice_money IS NULL,p.total_money,p.total_money-pa.invoice_money) invoice_money_notready,IFNULL(pa.invoice_money_rate,0.00) invoice_money_rate FROM `ly_project` p LEFT JOIN `ly_project_amount` pa ON pa.project_id = p.id LEFT JOIN `ly_contract` c ON c.id = p.contract_id WHERE p.identifier LIKE '%2305106%' AND c.company_order LIKE '%海量%' ORDER BY p.contract_sign_date
以下是将 SQL 代码转换为 MyBatis Plus 代码的示例:
```java
QueryWrapper<Project> queryWrapper = new QueryWrapper<>();
queryWrapper.select("p.id", "p.identifier", "c.company_order", "p.business_source", "p.salesmen", "p.charge", "p.contract_sign_date", "p.total_money", "IFNULL(pa.invoice_money,0.00) invoice_money", "IF(pa.invoice_money IS NULL,p.total_money,p.total_money-pa.invoice_money) invoice_money_notready", "IFNULL(pa.invoice_money_rate,0.00) invoice_money_rate")
.eq("p.identifier", "%2305106%")
.like("c.company_order", "海量")
.orderByAsc("p.contract_sign_date")
.leftJoin(ProjectAmount.class, "pa", "pa.project_id = p.id")
.leftJoin(Contract.class, "c", "c.id = p.contract_id");
List<Project> projectList = projectMapper.selectList(queryWrapper);
```
这段代码中,我们使用了 MyBatis Plus 提供的 `QueryWrapper` 类来构造查询条件,使用 `select` 方法来指定需要查询的字段,使用 `eq` 和 `like` 方法来添加查询条件,使用 `orderByAsc` 方法来指定排序方式,使用 `leftJoin` 方法来添加左连接的表和连接条件。最后,我们调用 `selectList` 方法来执行查询,并将结果保存在 `projectList` 变量中。
阅读全文