Oddly, I cannot find an answer to this question. I'm doing table designs with the assumption that I'll be able to use foreign keys in my Android app. If I can't using the default sdk, are there other options? Can I gen a build with the pragma and include it as a lib?
            Asked
            
        
        
            Active
            
        
            Viewed 58 times
        
    1 Answers
2
            Quoting the SQLite documentation:
...support for SQL foreign key constraints [was] introduced in SQLite version 3.6.19
According to the SO question serving as our repository of version info, API Level 8+ should have a new-enough SQLite version to offer foreign key support. That should be enough for most developers.
 
    
    
        Community
        
- 1
- 1
 
    
    
        CommonsWare
        
- 986,068
- 189
- 2,389
- 2,491
- 
                    1That says "foreign key constraints." Foreign key support (in the sense of being able to create joins) has probably been available long before that. – Robert Harvey Oct 04 '14 at 15:38
- 
                    @RobertHarvey: I'm preferring to be conservative in my interpretation of the question. When I think "foreign keys", I usually think of "foreign key constraints". But your point is valid -- I am fairly certain that `JOIN` has been around in SQLite longer than Android has been around in general. – CommonsWare Oct 04 '14 at 15:42
- 
                    Thanks for the API Level info. Do you know if foreign key support is enabled by default. My reading of the SQLite doco suggests that it is not. – Johnny Raved Oct 04 '14 at 20:14
- 
                    @JohnnyRaved: "Do you know if foreign key support is enabled by default" -- hmmmm... `setForeignKeyConstraintsEnabled()` was added to `SQLiteDatabase` in API Level 16, so it's at least possible to use them starting then. Prior to that, [you need to execute the `PRAGMA` yourself](http://stackoverflow.com/a/3266882/115145). – CommonsWare Oct 04 '14 at 20:21
