标签: firebird

SQL:WHERE IN()中的项目顺序是否重要?

WHERE IN子句中值的顺序是否重要?(如果这很重要,这是在Firebird SQL上)

如:

where field1 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Run Code Online (Sandbox Code Playgroud)

性能提升超过

where field1 in (3, 5, 10, 2, 1, 8, 6, 9, 4, 7)
Run Code Online (Sandbox Code Playgroud)

sql firebird sqlperformance

7
推荐指数
1
解决办法
1253
查看次数

具有授予权限的firebird用户无法访问表

我通过jaybird创建了一个Firebird用户(PIPPO),跟随gsec"display":

GSEC> di
     user name                    uid   gid admin     full name
------------------------------------------------------------------------------------------------
SYSDBA                              0     0           Sql Server Administrator
PIPPO                               0     0           GesAll 1.0 User
GSEC>

我在Firebird DB中创建了一个角色(GESALLDB_USER)并授予了一些权限:

SQL> show grant;

/* Grant permissions for this database */
GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON ANELLI TO ROLE GESALLDB_USER

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COPPIE TO ROLE GESALLDB_USER

GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON COVE TO ROLE GESALLDB_USER
GRANT DELETE, INSERT, SELECT, UPDATE, REFERENCES ON DATI_CONFIGURAZIONE TO ROLE GESALLDB_USER …

database privileges firebird role jaybird

7
推荐指数
1
解决办法
1万
查看次数

如何暂时禁用Firebird 2.1中的表中的所有约束?

我想禁用所有外键约束并在之后重新启用它们,有没有办法做到这一点?

我知道SQLServer允许这样做,但是Firebird呢?

sql firebird constraints firebird2.1

6
推荐指数
1
解决办法
7113
查看次数

如何使用SQL MAX函数获取行的所有字段?

考虑这个表(来自http://www.tizag.com/mysqlTutorial/mysqlmax.php):

Id     name               type     price 
123451 Park's Great Hits  Music    19.99 
123452 Silly Puddy        Toy      3.99 
123453 Playstation        Toy      89.95 
123454 Men's T-Shirt      Clothing 32.50 
123455 Blouse             Clothing 34.97 
123456 Electronica 2002   Music    3.99 
123457 Country Tunes      Music    21.55 
123458 Watermelon         Food     8.73
Run Code Online (Sandbox Code Playgroud)

此SQL查询返回每种类型中最昂贵的项:SELECT类型,MAX(价格)FROM产品GROUP BY类型

Clothing $34.97
Food     $8.73
Music    $21.55
Toy      $89.95
Run Code Online (Sandbox Code Playgroud)

我还希望为每一行获取属于上述最高价格的字段ID名称.什么SQL查询将返回这样的表?

Id     name            type      price
123455 Blouse          Clothing  34.97
123458 Watermelon      Food      8.73
123457 Country Tunes   Music     21.55
123453 Playstation     Toy …
Run Code Online (Sandbox Code Playgroud)

sql firebird max firebird2.1 greatest-n-per-group

6
推荐指数
2
解决办法
3104
查看次数

为Delphi应用程序选择数据库和许可

我们有Delphi XE2.我们正在为我们的应用程序寻找数据库.我们尝试过Absolute Database,它支持我们需要的大多数SQL命令.我看到大多数Delphi用户选择Firebird但似乎很难使用.我对数据库和许可证非常困惑.这是我的问题:

  1. 当我们选择数据库时,让我们说绝对数据库,Firebird,MySql嵌入等等,如果我们有例如3.000客户,我们还需要向数据库开发人员支付费用吗?还是一次性费用?我很困惑,因为他们说我们购买时,我们可以在我们的建筑物内使用它(http://www.componentace.com/order/licenses.php).但是当我们发布我们的软件时,我们的客户当然需要使用相同的数据库.

  2. Absolute DB易于安装并支持大多数SQL查询.Firebird不支持大多数SQL查询.它是否正确?

  3. 当我们尝试使用Firebird时,我们使用FlameRobin来设计数据库.但是当我们尝试使用IB组件进行连接时,它会说"无法连接数据库".

非常感谢你...

database delphi firebird embedded-database firebird-embedded

6
推荐指数
2
解决办法
1412
查看次数

如何在Firebird中优化DELETE .. NOT IN .. SUBQUERY

我有这种删除查询:

DELETE 
FROM SLAVE_TABLE
WHERE ITEM_ID NOT IN (SELECT ITEM_ID FROM MASTER_TABLE)
Run Code Online (Sandbox Code Playgroud)

有没有办法优化这个?

firebird subquery sql-delete

6
推荐指数
1
解决办法
3403
查看次数

Firebird - 更适合价格计算:十进制或数字

在Firebird DB中:我读到了数字和小数之间的差异,但仍然不确定哪个更适合价格计算:十进制或数字没有舍入数字?

谢谢

sql firebird

6
推荐指数
1
解决办法
1541
查看次数

使用Entity Framework插入时有条件地设置Identity字段

我正在使用带有Entity Framework的Firebird ADO.NET提供程序,但这个问题也适用于其他提供程序.

我的模型上有一个字段如下

    [Column("JOBNO"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int JobNo { get; set; }
Run Code Online (Sandbox Code Playgroud)

在数据库中,我有一个'on insert'触发器,JOBNO如果JOBNO设置为,则使用生成器更新字段NULL

通过在我的模型字段上设置DatabaseGenerated属性DatabaseGeneratedOption.Identity,实体框架正确地JOBNO从插入数据库中提取数据.

但有时我想JOBNO在插入时手动指定列,但EF不理解并只使用生成的值.

有没有办法允许这个DataBaseGenerated字段的条件设置?

c# firebird entity-framework

6
推荐指数
1
解决办法
780
查看次数

列出Firebird数据库的所有未使用的域

是否有一种快速方法可以列出为数据库定义的所有Firebird域,这些域实际上并未被任何字段使用?我有一个包含许多表和许多域的大型数据库,似乎很多都不再使用了,所以我想是时候进行清理了!

我认为这可以通过查询RDB$...系统表来实现,但我不确定如何做到这一点.

firebird

6
推荐指数
1
解决办法
570
查看次数

如何在流畅的nhibernate映射中使用数据库过程

我有这门课

public class Bill : EntityBase
{
      public virtual decimal Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在下面的映射中,我使用a中的过程填充'Value'的值 Formula()

public class MapBill : ClassMap<Bill>
{
    public MapBill()
    {
        Table("cabrec");
        Map(m => m.Value)
            .Formula(
"(select t.VALOR_IND from ret_vlorind(1,1,cast('02/06/1993' as Date)) as t)")
            .CustomType(typeof(decimal));
    }
}
Run Code Online (Sandbox Code Playgroud)

但它在执行时返回错误:

{"Dynamic SQL Error\r\nSQL error code = -104\r\nToken unknown - line 1, column 279\r\n."}
Run Code Online (Sandbox Code Playgroud)

有没有办法在流利的nhibernate中使用程序?

c# nhibernate firebird fluent-nhibernate

6
推荐指数
1
解决办法
107
查看次数